Compare commits

..

No commits in common. "518e3049481d653a13cbd7dc0c473a709dce69d9" and "5b17adb07169822d946c8d25b0d6a6547fbf3a83" have entirely different histories.

4 changed files with 24 additions and 25 deletions

View File

@ -12,14 +12,14 @@ else
endif endif
LUME_VERSION ?= $(shell git describe --tags --always) LUME_VERSION ?= $(shell git describe --tags --always)
LDFLAGS := $(LDFLAGS) \ LDFLAGS := ${LDFLAGS} \
-X git.kill0.net/chill9/lume/cmd.Version=$(LUME_VERSION) \ -X git.kill0.net/chill9/lume/cmd.Version=${LUME_VERSION} \
-X git.kill0.net/chill9/lume/cmd.BuildDate=$(BUILD_DATE) -X git.kill0.net/chill9/lume/cmd.BuildDate=${BUILD_DATE}
.PHONY: build .PHONY: build
build: build:
$(Q) go build -o $(EXE) -ldflags="$(LDFLAGS)" ./cmd/lume $(Q) go build -o ${EXE} -ldflags="${LDFLAGS}" ./cmd/lume
.PHONY: clean .PHONY: clean
clean: clean:
$(RM) $(EXE) ${RM} ${EXE}

View File

@ -21,7 +21,6 @@ type Config struct {
type CmdArgs struct { type CmdArgs struct {
Flags Flags Flags Flags
Args []string
Client *lifx.Client Client *lifx.Client
Config Config Config Config
Name string Name string

View File

@ -1,24 +1,32 @@
package lumecmd package lumecmd
import ( import (
"flag"
"fmt" "fmt"
"sort" "sort"
) )
func NewCmdHelp() Command { func NewCmdHelp() Command {
return Command{ return Command{
Name: "help", Name: "help",
Func: HelpCmd, Func: HelpCmd,
Flags: func() *flag.FlagSet {
fs := flag.NewFlagSet("help", flag.ExitOnError)
return fs
}(),
Use: "<command>", Use: "<command>",
Short: "Show help for a command", Short: "Show help for a command",
} }
} }
func HelpCmd(args CmdArgs) (int, error) { func HelpCmd(args CmdArgs) (int, error) {
if len(args.Args) == 0 { argv := args.Flags.Args()
if len(argv) == 0 {
printHelp(commandRegistry) printHelp(commandRegistry)
} else if len(args.Args) >= 1 { } else if len(argv) >= 1 {
printCmdHelp(args.Args[0]) printCmdHelp(argv[0])
} }
return ExitSuccess, nil return ExitSuccess, nil
@ -55,15 +63,11 @@ func printCmdHelp(name string) error {
if subCmd.Use != "" { if subCmd.Use != "" {
fmt.Printf("usage:\n lume %s %s\n", subCmd.Name, subCmd.Use) fmt.Printf("usage:\n lume %s %s\n", subCmd.Name, subCmd.Use)
} else { fmt.Println()
fmt.Printf("usage:\n lume %s\n", subCmd.Name)
} }
if subCmd.Flags != nil { fmt.Print("flags:\n")
fmt.Println() subCmd.Flags.PrintDefaults()
fmt.Print("flags:\n")
subCmd.Flags.PrintDefaults()
}
return nil return nil
} }

View File

@ -74,7 +74,6 @@ func Main(args []string) (int, error) {
cmdArgs := CmdArgs{ cmdArgs := CmdArgs{
Client: c, Client: c,
Config: config, Config: config,
Args: args[2:],
} }
cmd, ok := GetCommand(command) cmd, ok := GetCommand(command)
@ -82,14 +81,11 @@ func Main(args []string) (int, error) {
err = fmt.Errorf("lume: '%s' is not lume command. See 'lume help'", command) err = fmt.Errorf("lume: '%s' is not lume command. See 'lume help'", command)
return ExitFailure, err return ExitFailure, err
} }
fs := cmd.Flags fs := cmd.Flags
if fs != nil { fs.Parse(args[2:])
fs.Parse(args[2:])
cmdArgs.Flags = Flags{FlagSet: fs}
}
cmdArgs.Name = command
cmdArgs.Flags = Flags{FlagSet: fs}
cmdArgs.Name = command
exitCode, err := cmd.Func(cmdArgs) exitCode, err := cmd.Func(cmdArgs)
if err != nil { if err != nil {
err = fmt.Errorf("fatal: %s", err) err = fmt.Errorf("fatal: %s", err)