added dev version, changed go namespace, added inline manpage

This commit is contained in:
2022-10-04 15:09:13 +02:00
parent 4596d9d589
commit 43dc4ff031
5 changed files with 78 additions and 26 deletions

View File

@@ -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 ./...

View File

@@ -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
View File

@@ -1,4 +1,4 @@
module daemon.de/tablizer module github.com/tlinden/tablizer
go 1.18 go 1.18

View File

@@ -17,19 +17,29 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package lib package lib
var (
// command line flags // command line flags
var Debug bool Debug bool
var XtendedOut bool XtendedOut bool
var NoNumbering bool NoNumbering bool
var ShowVersion bool ShowVersion bool
var Columns string Columns string
var UseColumns []int UseColumns []int
var Separator string Separator string
var OutflagExtended bool OutflagExtended bool
var OutflagMarkdown bool OutflagMarkdown bool
var OutflagOrgtable bool OutflagOrgtable bool
var OutflagShell bool OutflagShell bool
var OutputMode string 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
)

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package main package main
import ( import (
"daemon.de/tablizer/cmd" "github.com/tlinden/tablizer/cmd"
) )
func main() { func main() {