diff options
| author | Jeff Carr <[email protected]> | 2025-10-12 00:11:00 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-12 00:11:00 -0500 |
| commit | 2d5370c9a6dd8ab566ec2943e20738b31a7a6606 (patch) | |
| tree | c714dafa13c6763ded14638cee98cf33b79786c7 /bash.orig.go | |
| parent | 7144347aa7dc1e53bb5df051a2c5c3eaacbb34c6 (diff) | |
restructure code
Diffstat (limited to 'bash.orig.go')
| -rw-r--r-- | bash.orig.go | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/bash.orig.go b/bash.orig.go deleted file mode 100644 index 7d431cc..0000000 --- a/bash.orig.go +++ /dev/null @@ -1,138 +0,0 @@ -package prep - -// initializes logging and command line options - -import ( - "fmt" - "os" - "strings" - - "go.wit.com/dev/alexflint/arg" - "go.wit.com/lib/config" -) - -/* -This struct can be used with the go-arg package. These -are the generic default command line arguments for the 'GUI' package -*/ -var argBash ArgsBash - -type ArgsBash struct { - Bash bool `arg:"--bash" help:"generate bash completion"` -} - -// try this struct out (?) -var myAuto *AutoArgs - -// this is a work in progress -type AutoArgs struct { - id int // should be unique - hidden bool // don't update the toolkits when it's hidden - Auto func([]string) // the function for shell autocomplete - appName string // a good way to track the name of the binary ? - examples func() string // some examples - buildtime func() (string, string) // some examples - pp *arg.Parser // for parsing the command line args. Yay to alexf lint! - autoFunc func(*Auto) // also a function for autocomplete - match map[string]string // maps for strings -} - -// print out auto complete debugging info -func (pb *Auto) PrintDebug() { - dur := pb.Duration.AsDuration() - pb.Debugf("AUTOCOMPLETE: arg0='%s' arg1='%s' partial='%s' cmd='%s' age=%s argv=%v\n", pb.Arg0, pb.Arg1, pb.Partial, pb.Cmd, config.FormatDuration(dur), pb.Argv) -} - -func (pb *Auto) WriteHelp() { - myAuto.pp.WriteHelp(os.Stdout) -} - -func (pb *Auto) Debugf(fmts string, parts ...any) { - fmts = strings.TrimSpace(fmts) - fmts += "\n" - // NOTE: env doesn't work probably most (all?) the time because bash - // doesn't send all the ENV to autocomplete. so, trap on a "--autodebug" command line arg - if os.Getenv("AUTOCOMPLETE_VERBOSE") == "true" || pb.Debug { - if !pb.Newline { - fmt.Fprintf(os.Stderr, "\n") - pb.Newline = true - } - fmt.Fprintf(os.Stderr, fmts, parts...) - } else { - // fmt.Fprintf(os.Stderr, "NOT DOING ANYTHING\n") - } -} - -// returns the last command (is blank if the current arg is not blank) -func GetLast(cur string, argv []string) string { - if cur != "''" { - return "" - } - for _, s := range argv { - if strings.HasPrefix(s, "-") { - continue - } - return s - } - return "" -} - -// returns the name of the executable registered for shell autocomplete -func AppName() string { - return myAuto.appName -} - -/* -// makes a bash autocomplete file for your command -func doBash(argname string) { - fmt.Println(makeBashCompletionText(argname)) - - homeDir, err := os.UserHomeDir() - if err != nil { - log.Printf("%v\n", err) - os.Exit(0) - } - filename := filepath.Join(homeDir, ".local/share/bash-completion/completions", argname) - if config.Exists(filename) { - log.Println(filename, "file already exists") - os.Exit(0) - } - basedir, _ := filepath.Split(filename) - if !config.IsDir(basedir) { - os.MkdirAll(basedir, os.ModePerm) - } - - if f, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644); err == nil { - f.Write([]byte(makeBashCompletionText(argname))) - f.Close() - log.Println("bash file created:", filename) - log.Println("restart bash") - } else { - log.Info(filename, err) - } - os.Exit(0) -} -*/ - -/* -// argname is the name of the executable -func Bash(argname string, autocomplete func([]string)) *AutoArgs { - myAuto = new(AutoArgs) - myAuto.appName = argname - - if len(os.Args) > 1 && os.Args[1] == "--bash" { - doBash(argname) - os.Exit(0) - } - - if len(os.Args) > 1 && os.Args[1] == "--auto-complete" { - autocomplete(os.Args[2:]) - os.Exit(0) - } - - arg.Register(&argBash) - - // parse go.Arg here? - return myAuto -} -*/ |
