cmd/pgcli: add func printVersion

This commit is contained in:
rkonfj
2024-11-09 10:10:24 +08:00
parent d8996788b4
commit 1a6c6737e9
5 changed files with 39 additions and 5 deletions

View File

@@ -27,7 +27,7 @@ func Run() error {
func parseSecretKeyAndServer(flagSet *flag.FlagSet, args []string) (secretKey string, server string, err error) {
flagSet.StringVar(&secretKey, "secret-key", "", "key to generate network secret")
flagSet.StringVar(&secretKey, "server", "", "peermap server url")
flagSet.StringVar(&secretKey, "s", "", "peermap server url")
flagSet.Parse(args)
if secretKey == "" {

View File

@@ -27,7 +27,7 @@ func Run() error {
}
downloader := fileshare.Downloader{ListenUDPPort: 28879}
flagSet.StringVar(&downloader.Server, "server", "", "peermap server")
flagSet.StringVar(&downloader.Server, "s", "", "peermap server")
flagSet.StringVar(&downloader.Network, "pubnet", "public", "peermap public network")
var logLevel int

View File

@@ -5,6 +5,7 @@ import (
"fmt"
"log/slog"
"os"
"runtime/debug"
"github.com/sigcn/pg/cmd/pgcli/admin"
"github.com/sigcn/pg/cmd/pgcli/curve25519"
@@ -21,6 +22,7 @@ func main() {
var logLevel int
flag.Usage = usage
flag.IntVar(&logLevel, "loglevel", 0, "log level")
flag.BoolFunc("v", "print binary version", printVersion)
flag.Parse()
slog.SetLogLoggerLevel(slog.Level(logLevel))
if err := run(); err != nil {
@@ -40,7 +42,12 @@ func run() error {
case "share":
return share.Run()
case "vpn":
vpn.Version = Version
commit, _, _ := readBinaryInfo()
if len(commit) < 7 {
vpn.Version = Version
} else {
vpn.Version = fmt.Sprintf("%s-%s", Version, commit[:7])
}
return vpn.Run()
default:
usage()
@@ -58,6 +65,32 @@ func usage() {
fmt.Printf(" share\t\tShare files to peers\n")
fmt.Printf(" vpn\t\tRun a vpn daemon which backend is PeerGuard p2p network\n\n")
fmt.Printf("Flags:\n")
fmt.Printf(" --loglevel\n\tlog level\n")
fmt.Printf(" -v, --version\n\tprint binary version\n")
}
func readBinaryInfo() (commit, buildTime, goVersion string) {
info, ok := debug.ReadBuildInfo()
goVersion = info.GoVersion
if ok {
for _, kv := range info.Settings {
if kv.Key == "vcs.revision" {
commit = kv.Value
continue
}
if kv.Key == "vcs.time" {
buildTime = kv.Value
}
}
}
return
}
func printVersion(string) error {
commit, buildTime, goVersion := readBinaryInfo()
fmt.Println(goVersion)
fmt.Printf("version\t\t%s\n", Version)
fmt.Printf("build_time\t%s\n", buildTime)
fmt.Printf("commit\t\t%s\n", commit)
os.Exit(0)
return nil
}

View File

@@ -24,7 +24,7 @@ func Run() error {
}
fileManager := fileshare.FileManager{ListenUDPPort: 28878, ProgressBar: createBar}
flagSet.StringVar(&fileManager.Server, "server", "", "peermap server")
flagSet.StringVar(&fileManager.Server, "s", "", "peermap server")
flagSet.StringVar(&fileManager.Network, "pubnet", "public", "peermap public network")
flagSet.StringVar(&fileManager.PrivateKey, "key", "", "curve25519 private key in base58 format (default generate a new one)")

View File

@@ -52,6 +52,7 @@ func Run() error {
var logLevel int
flagSet.BoolVar(&pprof, "pprof", false, "enable http pprof server")
flagSet.IntVar(&logLevel, "loglevel", 0, "log level")
flagSet.IntVar(&logLevel, "V", 0, "")
cfg, err := createConfig(flagSet, flag.Args()[1:])
if err != nil {
return err