85 lines
2.5 KiB
Go
85 lines
2.5 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
|
|
|
|
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)
|
|
}
|