mirror of
https://codeberg.org/scip/tablizer.git
synced 2025-12-17 12:31:06 +01:00
added dev version, changed go namespace, added inline manpage
This commit is contained in:
19
Makefile
19
Makefile
@@ -18,19 +18,30 @@
|
|||||||
#
|
#
|
||||||
# no need to modify anything below
|
# no need to modify anything below
|
||||||
tool = tablizer
|
tool = tablizer
|
||||||
version = $(shell egrep "^var Version = " lib/common.go | cut -d'=' -f2 | cut -d'"' -f 2)
|
version = $(shell egrep "= .v" lib/common.go | cut -d'=' -f2 | cut -d'"' -f 2)
|
||||||
archs = android darwin freebsd linux netbsd openbsd windows
|
archs = android darwin freebsd linux netbsd openbsd windows
|
||||||
PREFIX = /usr/local
|
PREFIX = /usr/local
|
||||||
UID = root
|
UID = root
|
||||||
GID = 0
|
GID = 0
|
||||||
|
BRANCH = $(shell git describe --all | cut -d/ -f2)
|
||||||
|
COMMIT = $(shell git rev-parse --short=8 HEAD)
|
||||||
|
BUILD = $(shell date +%Y.%m.%d.%H%M%S)
|
||||||
|
VERSION:= $(if $(filter $(BRANCH), development),$(version)-$(BRANCH)-$(COMMIT)-$(BUILD))
|
||||||
|
|
||||||
all: buildlocal $(tool).1
|
|
||||||
|
all: $(tool).1 cmd/$(tool).go buildlocal
|
||||||
|
|
||||||
%.1: %.pod
|
%.1: %.pod
|
||||||
pod2man -c "User Commands" -r 1 -s 1 $*.pod > $*.1
|
pod2man -c "User Commands" -r 1 -s 1 $*.pod > $*.1
|
||||||
|
|
||||||
|
cmd/%.go: %.pod
|
||||||
|
echo "package cmd" > cmd/$*.go
|
||||||
|
echo "var manpage = \`" >> cmd/$*.go
|
||||||
|
pod2text $*.pod >> cmd/$*.go
|
||||||
|
echo "\`" >> cmd/$*.go
|
||||||
|
|
||||||
buildlocal:
|
buildlocal:
|
||||||
go build
|
go build -ldflags "-X 'github.com/tlinden/tablizer/lib.VERSION=$(VERSION)'"
|
||||||
|
|
||||||
release:
|
release:
|
||||||
./mkrel.sh $(tool) $(version)
|
./mkrel.sh $(tool) $(version)
|
||||||
@@ -42,7 +53,7 @@ install: buildlocal
|
|||||||
install -o $(UID) -g $(GID) -m 444 $(tool).1 $(PREFIX)/man/man1/
|
install -o $(UID) -g $(GID) -m 444 $(tool).1 $(PREFIX)/man/man1/
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(tool) $(tool).1 releases
|
rm -rf $(tool) $(tool).1 cmd/$(tool).go releases
|
||||||
|
|
||||||
test:
|
test:
|
||||||
go test -v ./...
|
go test -v ./...
|
||||||
|
|||||||
35
cmd/root.go
35
cmd/root.go
@@ -17,19 +17,43 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"daemon.de/tablizer/lib"
|
"bytes"
|
||||||
|
"github.com/tlinden/tablizer/lib"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
"os/exec"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var helpCmd = &cobra.Command{
|
||||||
|
Use: "help",
|
||||||
|
Short: "Show documentation",
|
||||||
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
|
man := exec.Command("less", "-")
|
||||||
|
|
||||||
|
var b bytes.Buffer
|
||||||
|
b.Write([]byte(manpage))
|
||||||
|
|
||||||
|
man.Stdout = os.Stdout
|
||||||
|
man.Stdin = &b
|
||||||
|
man.Stderr = os.Stderr
|
||||||
|
|
||||||
|
err := man.Run()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
var rootCmd = &cobra.Command{
|
var rootCmd = &cobra.Command{
|
||||||
Use: "tablizer [regex] [file, ...]",
|
Use: "tablizer [regex] [file, ...]",
|
||||||
Short: "[Re-]tabularize tabular data",
|
Short: "[Re-]tabularize tabular data",
|
||||||
Long: `Manipulate tabular output of other programs`,
|
Long: `Manipulate tabular output of other programs`,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
if lib.ShowVersion {
|
if lib.ShowVersion {
|
||||||
fmt.Printf("This is tablizer version %s\n", lib.Version)
|
fmt.Printf("This is tablizer version %s\n", lib.VERSION)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,4 +98,11 @@ func init() {
|
|||||||
|
|
||||||
// same thing but more common, takes precedence over above group
|
// same thing but more common, takes precedence over above group
|
||||||
rootCmd.PersistentFlags().StringVarP(&lib.OutputMode, "output", "o", "", "Output mode - one of: orgtbl, markdown, extended, shell, ascii(default)")
|
rootCmd.PersistentFlags().StringVarP(&lib.OutputMode, "output", "o", "", "Output mode - one of: orgtbl, markdown, extended, shell, ascii(default)")
|
||||||
|
|
||||||
|
rootCmd.AddCommand(helpCmd)
|
||||||
|
|
||||||
|
rootCmd.SetHelpCommand(&cobra.Command{
|
||||||
|
Use: "no-help",
|
||||||
|
Hidden: true,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -1,4 +1,4 @@
|
|||||||
module daemon.de/tablizer
|
module github.com/tlinden/tablizer
|
||||||
|
|
||||||
go 1.18
|
go 1.18
|
||||||
|
|
||||||
|
|||||||
@@ -17,19 +17,29 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
package lib
|
package lib
|
||||||
|
|
||||||
// command line flags
|
var (
|
||||||
var Debug bool
|
// command line flags
|
||||||
var XtendedOut bool
|
Debug bool
|
||||||
var NoNumbering bool
|
XtendedOut bool
|
||||||
var ShowVersion bool
|
NoNumbering bool
|
||||||
var Columns string
|
ShowVersion bool
|
||||||
var UseColumns []int
|
Columns string
|
||||||
var Separator string
|
UseColumns []int
|
||||||
var OutflagExtended bool
|
Separator string
|
||||||
var OutflagMarkdown bool
|
OutflagExtended bool
|
||||||
var OutflagOrgtable bool
|
OutflagMarkdown bool
|
||||||
var OutflagShell bool
|
OutflagOrgtable bool
|
||||||
var OutputMode string
|
OutflagShell bool
|
||||||
|
OutputMode string
|
||||||
|
|
||||||
var Version = "v1.0.3"
|
// used for validation
|
||||||
var validOutputmodes = "(orgtbl|markdown|extended|ascii)"
|
validOutputmodes = "(orgtbl|markdown|extended|ascii)"
|
||||||
|
|
||||||
|
// main program version
|
||||||
|
Version = "v1.0.3"
|
||||||
|
|
||||||
|
// generated version string, used by -v contains lib.Version on
|
||||||
|
// main branch, and lib.Version-$branch-$lastcommit-$date on
|
||||||
|
// development branch
|
||||||
|
VERSION string
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user