gus/argv.go

77 lines
1.9 KiB
Go

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