summaryrefslogtreecommitdiff
path: root/bash.orig.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-12 00:11:00 -0500
committerJeff Carr <[email protected]>2025-10-12 00:11:00 -0500
commit2d5370c9a6dd8ab566ec2943e20738b31a7a6606 (patch)
treec714dafa13c6763ded14638cee98cf33b79786c7 /bash.orig.go
parent7144347aa7dc1e53bb5df051a2c5c3eaacbb34c6 (diff)
restructure code
Diffstat (limited to 'bash.orig.go')
-rw-r--r--bash.orig.go138
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
-}
-*/