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
// 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
)

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() {