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
}
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"
"os"
"path/filepath"
"strings"
)
const version = "v0.1.8"
const version = "v0.1.9"
var usage = fmt.Sprintf(`Smug - tmux session manager. Version %s
@ -22,6 +23,7 @@ Options:
-d, --debug %s
Examples:
$ smug list
$ smug start blog
$ smug start blog:win1
$ smug start blog -w win1
@ -111,6 +113,14 @@ func main() {
fmt.Fprintf(os.Stderr, err.Error())
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"
CommandNew = "new"
CommandEdit = "edit"
CommandList = "list"
)
var validCommands = []string{CommandStart, CommandStop, CommandNew, CommandEdit}
var validCommands = []string{CommandStart, CommandStop, CommandNew, CommandEdit, CommandList}
type Options struct {
Command string
@ -74,13 +75,8 @@ func ParseOptions(argv []string, helpRequested func()) (Options, error) {
return Options{}, err
}
if len(argv) < 2 && *config == "" {
helpRequested()
return Options{}, ErrHelp
}
var project string
if *config == "" {
if *config == "" && len(argv) > 1 {
project = argv[1]
}

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

Loading…
Cancel
Save