Add list command (#43)

* [feature] Add "list" command
master
Ivan 3 years ago committed by GitHub
parent d57bf47b79
commit 9df91519b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -65,3 +65,18 @@ func ParseConfig(data string) (Config, error) {
return c, nil return c, nil
} }
func ListConfigs(path string) ([]string, error) {
var result []string
files, err := os.ReadDir(path)
if err != nil {
return result, err
}
for _, file := range files {
result = append(result, file.Name())
}
return result, nil
}

@ -5,9 +5,10 @@ import (
"log" "log"
"os" "os"
"path/filepath" "path/filepath"
"strings"
) )
const version = "v0.1.8" const version = "v0.1.9"
var usage = fmt.Sprintf(`Smug - tmux session manager. Version %s var usage = fmt.Sprintf(`Smug - tmux session manager. Version %s
@ -22,6 +23,7 @@ Options:
-d, --debug %s -d, --debug %s
Examples: Examples:
$ smug list
$ smug start blog $ smug start blog
$ smug start blog:win1 $ smug start blog:win1
$ smug start blog -w win1 $ smug start blog -w win1
@ -111,6 +113,14 @@ func main() {
fmt.Fprintf(os.Stderr, err.Error()) fmt.Fprintf(os.Stderr, err.Error())
os.Exit(1) os.Exit(1)
} }
case CommandList:
configs, err := ListConfigs(userConfigDir)
if err != nil {
fmt.Fprintf(os.Stderr, err.Error())
os.Exit(1)
}
fmt.Println(strings.Join(configs, "\n"))
} }
} }

@ -12,9 +12,10 @@ const (
CommandStop = "stop" CommandStop = "stop"
CommandNew = "new" CommandNew = "new"
CommandEdit = "edit" CommandEdit = "edit"
CommandList = "list"
) )
var validCommands = []string{CommandStart, CommandStop, CommandNew, CommandEdit} var validCommands = []string{CommandStart, CommandStop, CommandNew, CommandEdit, CommandList}
type Options struct { type Options struct {
Command string Command string
@ -74,13 +75,8 @@ func ParseOptions(argv []string, helpRequested func()) (Options, error) {
return Options{}, err return Options{}, err
} }
if len(argv) < 2 && *config == "" {
helpRequested()
return Options{}, ErrHelp
}
var project string var project string
if *config == "" { if *config == "" && len(argv) > 1 {
project = argv[1] project = argv[1]
} }

@ -56,24 +56,12 @@ var usageTestTable = []struct {
nil, nil,
0, 0,
}, },
{
[]string{"start"},
Options{},
ErrHelp,
1,
},
{ {
[]string{"start", "--help"}, []string{"start", "--help"},
Options{}, Options{},
ErrHelp, ErrHelp,
1, 1,
}, },
{
[]string{"start"},
Options{},
ErrHelp,
1,
},
{ {
[]string{"test"}, []string{"test"},
Options{}, Options{},

Loading…
Cancel
Save