// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main import ( "fmt" "os" ) /* this parses the command line arguements using alex flint's go-arg */ var argv args type args struct { Restore string `arg:"--restore" help:"restore terminal windows from a config file"` Save *EmptyCmd `arg:"subcommand:save" help:"save current window geometries to the your config file"` DumpX *EmptyCmd `arg:"subcommand:dumpx" help:"show your current window geometries"` Dump *EmptyCmd `arg:"subcommand:dump" help:"show your current window geometries"` Force bool `arg:"--force" help:"try to strong arm things"` Verbose bool `arg:"--verbose" help:"show more output"` 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 ARGNAME + " " + VERSION + " Built on " + BUILDTIME } func (a args) Description() string { return ` startxplacment -- run this after 'startx' to restore all your apps will attempt to launch your terminal windows on the right Workspaces and with the right geometries. TODO: restore the bash working paths ` } func deleteMatch() { // f := forgedb.InitSimple() fmt.Println("go.wit.com/lib/gui/repostatus todo: need to do this") } // prints help to STDERR // TODO: move everything below this to go-args func (args) doBashHelp() { if len(argv.BashAuto) < 2 { fmt.Fprintf(os.Stderr, "something went wrong with the GO args autocomplete in %s\n", ARGNAME) return } if argv.BashAuto[1] != "''" { // if this is not blank, then the user has typed something return } if argv.BashAuto[0] != ARGNAME { // if this is not the name of the command, the user already started doing something return } if argv.BashAuto[0] == ARGNAME { me.pp.WriteHelp(os.Stderr) return } fmt.Fprintln(os.Stderr, "") fmt.Fprintln(os.Stderr, "something went wrong with the GO args package") fmt.Fprintln(os.Stderr, "") } func (args) doBashAuto() { argv.doBashHelp() switch argv.BashAuto[0] { case "dump": fmt.Println("--terminals") default: if argv.BashAuto[0] == ARGNAME { // list the subcommands here fmt.Println("--restore save dump dumpx") } } os.Exit(0) }