// 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 ( "fmt" "os" "go.wit.com/log" ) var argv args type args struct { Gui *EmptyCmd `arg:"subcommand:gui" help:"open the gui"` Verbose bool `arg:"--verbose" help:"talk more"` Daemon bool `arg:"--daemon" default:"false" help:"run in daemon mode"` UseME bool `arg:"--me" help:"use /me to connect"` Port int `arg:"--port" default:"2522" help:"port to run on"` URL string `arg:"--url" help:"url to use"` Config string `arg:"--config" help:"config file (default is ~/.config/cloud/gus.text"` } type EmptyCmd struct { } func (args) Version() string { return "gus " + VERSION + " Built on: " + BUILDTIME } func (a args) Description() string { return ` "Phantastic Gus" your network squirrel * Meet [the Phantastic squirrel Gus](https://www.youtube.com/watch?v=hFZFjoX2cGg) ` } var NOW *log.LogFlag var INFO *log.LogFlag var PING *log.LogFlag var WARN *log.LogFlag func init() { full := "go.wit.com/lib/daemon/gus" short := "zood" NOW = log.NewFlag("NOW", true, full, short, "useful while doing debugging") INFO = log.NewFlag("INFO", false, full, short, "general gus") WARN = log.NewFlag("WARN", true, full, short, "bad things") } /* handles shell autocomplete */ func (a args) DoAutoComplete(argv []string) { switch argv[0] { case "playback": fmt.Println("long --uuid purge last submit") case "clean": fmt.Println("") default: if argv[0] == ARGNAME { // list the subcommands here fmt.Println("--json interact playback clean") } } os.Exit(0) }