// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main /* this parses the command line arguements this enables command line options from other packages like 'gui' and 'log' */ import ( "os" "go.wit.com/lib/gui/prep" "go.wit.com/log" ) var argv args type args struct { Gui *EmptyCmd `arg:"subcommand:gui" help:"open the gui"` List *EmptyCmd `arg:"subcommand:list" help:"list the machines in your zoo"` Upgrade *EmptyCmd `arg:"subcommand:upgrade" help:"upgrade the machines"` Verbose bool `arg:"--verbose" default:"false" help:"talk more"` Daemon bool `arg:"--daemon" default:"false" help:"run in daemon mode"` Port int `arg:"--port" default:"8080" help:"port to run on"` NoPort bool `arg:"--no-port" help:"don't open socket"` Bash bool `arg:"--bash" help:"generate bash completion"` BashAuto []string `arg:"--auto-complete" help:"todo: move this to go-arg"` } type EmptyCmd struct { } func (args) Version() string { return "zookeeper " + VERSION + " Built on: " + BUILDTIME } /* func init() { arg.MustParse(&argv) } */ func (a args) Description() string { return ` this daemon talks to zookeeper ` } var NOW *log.LogFlag var INFO *log.LogFlag var ZOOD *log.LogFlag var WARN *log.LogFlag func init() { full := "go.wit.com/apps/zookeeper" short := "zookeeper" NOW = log.NewFlag("NOW", true, full, short, "useful while doing debugging") INFO = log.NewFlag("INFO", false, full, short, "general zookeeper") ZOOD = log.NewFlag("ZOOD", false, full, short, "show reporting from zood") WARN = log.NewFlag("WARN", true, full, short, "bad things") } /* handles shell autocomplete */ func (args) Appname() string { return ARGNAME } func (args) Buildtime() (string, string) { return BUILDTIME, VERSION } func (a args) DoAutoComplete(pb *prep.Auto) { if pb.Cmd == "" { pb.Autocomplete3([]string{"gui", "list", "--daemon", "--version"}) } else { pb.SubCommand(pb.Goargs...) } os.Exit(0) }