Consolidate subcommand registration
This commit is contained in:
parent
1a99e03f88
commit
f63c90db2b
17
cmd/help.go
17
cmd/help.go
@ -1,23 +1,10 @@
|
||||
package lumecmd
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"sort"
|
||||
)
|
||||
|
||||
func init() {
|
||||
RegisterCommand("help", Command{
|
||||
Func: HelpCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("help", flag.ExitOnError)
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "<command>",
|
||||
Short: "Show help for a command",
|
||||
})
|
||||
}
|
||||
|
||||
func HelpCmd(args CmdArgs) (int, error) {
|
||||
argv := args.Flags.Args()
|
||||
|
||||
@ -47,7 +34,7 @@ func printHelp(commands map[string]Command) {
|
||||
fmt.Println("\ncommands:")
|
||||
|
||||
sort.Strings(keys)
|
||||
for _, k = range keys {
|
||||
for _, k := range keys {
|
||||
c := commands[k]
|
||||
fmt.Printf(" %-*s %s\n", maxLen, c.Name, c.Short)
|
||||
}
|
||||
|
20
cmd/ls.go
20
cmd/ls.go
@ -1,25 +1,5 @@
|
||||
package lumecmd
|
||||
|
||||
import (
|
||||
"flag"
|
||||
)
|
||||
|
||||
func init() {
|
||||
RegisterCommand("ls", Command{
|
||||
Func: LsCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("ls", flag.ExitOnError)
|
||||
|
||||
selector := fs.String("selector", defaultSelector, "Set the selector")
|
||||
fs.StringVar(selector, "s", defaultSelector, "Set the selector")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector=<selector>]",
|
||||
Short: "List the lights",
|
||||
})
|
||||
}
|
||||
|
||||
func LsCmd(args CmdArgs) (int, error) {
|
||||
c := args.Client
|
||||
selector := args.Flags.String("selector")
|
||||
|
176
cmd/main.go
176
cmd/main.go
@ -11,6 +11,182 @@ import (
|
||||
"github.com/BurntSushi/toml"
|
||||
)
|
||||
|
||||
func init() {
|
||||
RegisterCommand("help", Command{
|
||||
Func: HelpCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("help", flag.ExitOnError)
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "<command>",
|
||||
Short: "Show help for a command",
|
||||
})
|
||||
RegisterCommand("ls", Command{
|
||||
Func: LsCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("ls", flag.ExitOnError)
|
||||
|
||||
selector := fs.String("selector", defaultSelector, "Set the selector")
|
||||
fs.StringVar(selector, "s", defaultSelector, "Set the selector")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector=<selector>]",
|
||||
Short: "List the lights",
|
||||
})
|
||||
RegisterCommand("poweroff", Command{
|
||||
Func: PoweroffCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("poweroff", flag.ExitOnError)
|
||||
|
||||
duration := fs.Float64("duration", defaultDuration, "Set the duration")
|
||||
fs.Float64Var(duration, "d", defaultDuration, "Set the duration")
|
||||
|
||||
selector := fs.String("selector", defaultSelector, "Set the selector")
|
||||
fs.StringVar(selector, "s", defaultSelector, "Set the selector")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector <selector>] [--duration <sec>]",
|
||||
Short: "Power on",
|
||||
})
|
||||
RegisterCommand("poweron", Command{
|
||||
Func: PoweronCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("poweron", flag.ExitOnError)
|
||||
|
||||
duration := fs.Float64("duration", defaultDuration, "Set the duration")
|
||||
fs.Float64Var(duration, "d", defaultDuration, "Set the duration")
|
||||
|
||||
selector := fs.String("selector", defaultSelector, "Set the selector")
|
||||
fs.StringVar(selector, "s", defaultSelector, "Set the selector")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector <selector>] [--duration <sec>]",
|
||||
Short: "Power on",
|
||||
})
|
||||
RegisterCommand("set-color", Command{
|
||||
Func: SetColorCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("set-color", flag.ExitOnError)
|
||||
|
||||
selector := fs.String("selector", "all", "the selector")
|
||||
fs.StringVar(selector, "s", "all", "the selector")
|
||||
|
||||
power := fs.String("power", defaultPower, "power state")
|
||||
fs.StringVar(power, "p", defaultPower, "power state")
|
||||
|
||||
hue := fs.String("hue", defaultHue, "hue level")
|
||||
fs.StringVar(hue, "H", defaultHue, "hue level")
|
||||
|
||||
saturation := fs.String("saturation", defaultSaturation, "saturation level")
|
||||
fs.StringVar(saturation, "S", defaultSaturation, "saturation level")
|
||||
|
||||
rgb := fs.String("rgb", defaultRGB, "RGB value")
|
||||
fs.StringVar(rgb, "r", defaultRGB, "RGB value")
|
||||
|
||||
name := fs.String("name", defaultName, "named color")
|
||||
fs.StringVar(name, "n", defaultName, "named color")
|
||||
|
||||
brightness := fs.String("brightness", defaultBrightness, "brightness state")
|
||||
fs.StringVar(brightness, "b", defaultBrightness, "brightness state")
|
||||
|
||||
duration := fs.Float64("duration", defaultDuration, "duration state")
|
||||
fs.Float64Var(duration, "d", defaultDuration, "duration state")
|
||||
|
||||
fast := fs.Bool("fast", defaultFast, "fast state")
|
||||
fs.BoolVar(fast, "f", defaultFast, "fast state")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector <selector>] [--power (on|off)] [--hue <hue>] [--saturation <saturation>] [--rgb <rbg>] [--name <color>] [--brightness <brightness>] [--duration <sec>] [--fast]",
|
||||
Short: "Set the color",
|
||||
})
|
||||
RegisterCommand("set-state", Command{
|
||||
Func: SetStateCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("set-state", flag.ExitOnError)
|
||||
|
||||
selector := fs.String("selector", defaultSelector, "Set the selector")
|
||||
fs.StringVar(selector, "s", defaultSelector, "Set the selector")
|
||||
|
||||
power := fs.String("power", defaultPower, "power state")
|
||||
fs.StringVar(power, "p", defaultPower, "power state")
|
||||
|
||||
color := fs.String("color", defaultColor, "color state")
|
||||
fs.StringVar(color, "c", defaultColor, "color state")
|
||||
|
||||
brightness := fs.String("brightness", defaultBrightness, "brightness state")
|
||||
fs.StringVar(brightness, "b", defaultBrightness, "brightness state")
|
||||
|
||||
duration := fs.Float64("duration", defaultDuration, "duration state")
|
||||
fs.Float64Var(duration, "d", defaultDuration, "duration state")
|
||||
|
||||
infrared := fs.String("infrared", defaultInfrared, "infrared state")
|
||||
fs.StringVar(infrared, "i", defaultInfrared, "infrared state")
|
||||
|
||||
fast := fs.Bool("fast", defaultFast, "fast state")
|
||||
fs.BoolVar(fast, "f", defaultFast, "fast state")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector <selector>] [--power (on|off)] [--color <color>] [--brightness <brightness>] [--duration <sec>] [--infrared <infrared>] [--fast]",
|
||||
Short: "Set various state attributes",
|
||||
})
|
||||
RegisterCommand("set-white", Command{
|
||||
Func: SetWhiteCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("set-white", flag.ExitOnError)
|
||||
|
||||
selector := fs.String("selector", "all", "the selector")
|
||||
fs.StringVar(selector, "s", "all", "the selector")
|
||||
|
||||
power := fs.String("power", defaultPower, "power state")
|
||||
fs.StringVar(power, "p", defaultPower, "power state")
|
||||
|
||||
kelvin := fs.String("kelvin", defaultWhiteKelvin, "kelvin level")
|
||||
fs.StringVar(kelvin, "k", defaultWhiteKelvin, "kelvin level")
|
||||
|
||||
name := fs.String("name", defaultWhiteName, "named white level")
|
||||
fs.StringVar(name, "n", defaultWhiteName, "named white level")
|
||||
|
||||
brightness := fs.String("brightness", defaultBrightness, "brightness state")
|
||||
fs.StringVar(brightness, "b", defaultBrightness, "brightness state")
|
||||
|
||||
duration := fs.Float64("duration", defaultDuration, "duration state")
|
||||
fs.Float64Var(duration, "d", defaultDuration, "duration state")
|
||||
|
||||
infrared := fs.String("infrared", defaultInfrared, "infrared state")
|
||||
fs.StringVar(infrared, "i", defaultInfrared, "infrared state")
|
||||
|
||||
fast := fs.Bool("fast", defaultFast, "fast state")
|
||||
fs.BoolVar(fast, "f", defaultFast, "fast state")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector <selector>] [--power (on|off)] [--kelvin <kelvin>] [--name <color>] [--brightness <brightness>] [--duration <sec>] [--infrared] [--fast]",
|
||||
Short: "Set the white level",
|
||||
})
|
||||
RegisterCommand("toggle", Command{
|
||||
Func: ToggleCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("toggle", flag.ExitOnError)
|
||||
|
||||
duration := fs.Float64("duration", defaultDuration, "Set the duration")
|
||||
fs.Float64Var(duration, "d", defaultDuration, "Set the duration")
|
||||
|
||||
selector := fs.String("selector", defaultSelector, "Set the selector")
|
||||
fs.StringVar(selector, "s", defaultSelector, "Set the selector")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector <selector>] [--duration <sec>]",
|
||||
Short: "Toggle the power on/off",
|
||||
})
|
||||
}
|
||||
|
||||
const lumercFile string = ".lumerc"
|
||||
|
||||
func Main(args []string) (int, error) {
|
||||
|
@ -1,30 +1,9 @@
|
||||
package lumecmd
|
||||
|
||||
import (
|
||||
"flag"
|
||||
|
||||
lifx "git.kill0.net/chill9/lume"
|
||||
)
|
||||
|
||||
func init() {
|
||||
RegisterCommand("poweroff", Command{
|
||||
Func: PoweroffCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("poweroff", flag.ExitOnError)
|
||||
|
||||
duration := fs.Float64("duration", defaultDuration, "Set the duration")
|
||||
fs.Float64Var(duration, "d", defaultDuration, "Set the duration")
|
||||
|
||||
selector := fs.String("selector", defaultSelector, "Set the selector")
|
||||
fs.StringVar(selector, "s", defaultSelector, "Set the selector")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector <selector>] [--duration <sec>]",
|
||||
Short: "Power on",
|
||||
})
|
||||
}
|
||||
|
||||
func PoweroffCmd(args CmdArgs) (int, error) {
|
||||
c := args.Client
|
||||
duration := args.Flags.Float64("duration")
|
||||
|
@ -1,30 +1,9 @@
|
||||
package lumecmd
|
||||
|
||||
import (
|
||||
"flag"
|
||||
|
||||
lifx "git.kill0.net/chill9/lume"
|
||||
)
|
||||
|
||||
func init() {
|
||||
RegisterCommand("poweron", Command{
|
||||
Func: PoweronCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("poweron", flag.ExitOnError)
|
||||
|
||||
duration := fs.Float64("duration", defaultDuration, "Set the duration")
|
||||
fs.Float64Var(duration, "d", defaultDuration, "Set the duration")
|
||||
|
||||
selector := fs.String("selector", defaultSelector, "Set the selector")
|
||||
fs.StringVar(selector, "s", defaultSelector, "Set the selector")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector <selector>] [--duration <sec>]",
|
||||
Short: "Power on",
|
||||
})
|
||||
}
|
||||
|
||||
func PoweronCmd(args CmdArgs) (int, error) {
|
||||
c := args.Client
|
||||
duration := args.Flags.Float64("duration")
|
||||
|
@ -1,53 +1,12 @@
|
||||
package lumecmd
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
lifx "git.kill0.net/chill9/lume"
|
||||
)
|
||||
|
||||
func init() {
|
||||
RegisterCommand("set-color", Command{
|
||||
Func: SetColorCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("set-color", flag.ExitOnError)
|
||||
|
||||
selector := fs.String("selector", "all", "the selector")
|
||||
fs.StringVar(selector, "s", "all", "the selector")
|
||||
|
||||
power := fs.String("power", defaultPower, "power state")
|
||||
fs.StringVar(power, "p", defaultPower, "power state")
|
||||
|
||||
hue := fs.String("hue", defaultHue, "hue level")
|
||||
fs.StringVar(hue, "H", defaultHue, "hue level")
|
||||
|
||||
saturation := fs.String("saturation", defaultSaturation, "saturation level")
|
||||
fs.StringVar(saturation, "S", defaultSaturation, "saturation level")
|
||||
|
||||
rgb := fs.String("rgb", defaultRGB, "RGB value")
|
||||
fs.StringVar(rgb, "r", defaultRGB, "RGB value")
|
||||
|
||||
name := fs.String("name", defaultName, "named color")
|
||||
fs.StringVar(name, "n", defaultName, "named color")
|
||||
|
||||
brightness := fs.String("brightness", defaultBrightness, "brightness state")
|
||||
fs.StringVar(brightness, "b", defaultBrightness, "brightness state")
|
||||
|
||||
duration := fs.Float64("duration", defaultDuration, "duration state")
|
||||
fs.Float64Var(duration, "d", defaultDuration, "duration state")
|
||||
|
||||
fast := fs.Bool("fast", defaultFast, "fast state")
|
||||
fs.BoolVar(fast, "f", defaultFast, "fast state")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector <selector>] [--power (on|off)] [--hue <hue>] [--saturation <saturation>] [--rgb <rbg>] [--name <color>] [--brightness <brightness>] [--duration <sec>] [--fast]",
|
||||
Short: "Set the color",
|
||||
})
|
||||
}
|
||||
|
||||
func SetColorCmd(args CmdArgs) (int, error) {
|
||||
c := args.Client
|
||||
state := lifx.State{}
|
||||
|
@ -1,45 +1,9 @@
|
||||
package lumecmd
|
||||
|
||||
import (
|
||||
"flag"
|
||||
|
||||
lifx "git.kill0.net/chill9/lume"
|
||||
)
|
||||
|
||||
func init() {
|
||||
RegisterCommand("set-state", Command{
|
||||
Func: SetStateCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("set-state", flag.ExitOnError)
|
||||
|
||||
selector := fs.String("selector", defaultSelector, "Set the selector")
|
||||
fs.StringVar(selector, "s", defaultSelector, "Set the selector")
|
||||
|
||||
power := fs.String("power", defaultPower, "power state")
|
||||
fs.StringVar(power, "p", defaultPower, "power state")
|
||||
|
||||
color := fs.String("color", defaultColor, "color state")
|
||||
fs.StringVar(color, "c", defaultColor, "color state")
|
||||
|
||||
brightness := fs.String("brightness", defaultBrightness, "brightness state")
|
||||
fs.StringVar(brightness, "b", defaultBrightness, "brightness state")
|
||||
|
||||
duration := fs.Float64("duration", defaultDuration, "duration state")
|
||||
fs.Float64Var(duration, "d", defaultDuration, "duration state")
|
||||
|
||||
infrared := fs.String("infrared", defaultInfrared, "infrared state")
|
||||
fs.StringVar(infrared, "i", defaultInfrared, "infrared state")
|
||||
|
||||
fast := fs.Bool("fast", defaultFast, "fast state")
|
||||
fs.BoolVar(fast, "f", defaultFast, "fast state")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector <selector>] [--power (on|off)] [--color <color>] [--brightness <brightness>] [--duration <sec>] [--infrared <infrared>] [--fast]",
|
||||
Short: "Set various state attributes",
|
||||
})
|
||||
}
|
||||
|
||||
func SetStateCmd(args CmdArgs) (int, error) {
|
||||
c := args.Client
|
||||
state := lifx.State{}
|
||||
|
@ -1,48 +1,9 @@
|
||||
package lumecmd
|
||||
|
||||
import (
|
||||
"flag"
|
||||
|
||||
lifx "git.kill0.net/chill9/lume"
|
||||
)
|
||||
|
||||
func init() {
|
||||
RegisterCommand("set-white", Command{
|
||||
Func: SetWhiteCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("set-white", flag.ExitOnError)
|
||||
|
||||
selector := fs.String("selector", "all", "the selector")
|
||||
fs.StringVar(selector, "s", "all", "the selector")
|
||||
|
||||
power := fs.String("power", defaultPower, "power state")
|
||||
fs.StringVar(power, "p", defaultPower, "power state")
|
||||
|
||||
kelvin := fs.String("kelvin", defaultWhiteKelvin, "kelvin level")
|
||||
fs.StringVar(kelvin, "k", defaultWhiteKelvin, "kelvin level")
|
||||
|
||||
name := fs.String("name", defaultWhiteName, "named white level")
|
||||
fs.StringVar(name, "n", defaultWhiteName, "named white level")
|
||||
|
||||
brightness := fs.String("brightness", defaultBrightness, "brightness state")
|
||||
fs.StringVar(brightness, "b", defaultBrightness, "brightness state")
|
||||
|
||||
duration := fs.Float64("duration", defaultDuration, "duration state")
|
||||
fs.Float64Var(duration, "d", defaultDuration, "duration state")
|
||||
|
||||
infrared := fs.String("infrared", defaultInfrared, "infrared state")
|
||||
fs.StringVar(infrared, "i", defaultInfrared, "infrared state")
|
||||
|
||||
fast := fs.Bool("fast", defaultFast, "fast state")
|
||||
fs.BoolVar(fast, "f", defaultFast, "fast state")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector <selector>] [--power (on|off)] [--kelvin <kelvin>] [--name <color>] [--brightness <brightness>] [--duration <sec>] [--infrared] [--fast]",
|
||||
Short: "Set the white level",
|
||||
})
|
||||
}
|
||||
|
||||
func SetWhiteCmd(args CmdArgs) (int, error) {
|
||||
c := args.Client
|
||||
state := lifx.State{}
|
||||
|
@ -1,28 +1,5 @@
|
||||
package lumecmd
|
||||
|
||||
import (
|
||||
"flag"
|
||||
)
|
||||
|
||||
func init() {
|
||||
RegisterCommand("toggle", Command{
|
||||
Func: ToggleCmd,
|
||||
Flags: func() *flag.FlagSet {
|
||||
fs := flag.NewFlagSet("toggle", flag.ExitOnError)
|
||||
|
||||
duration := fs.Float64("duration", defaultDuration, "Set the duration")
|
||||
fs.Float64Var(duration, "d", defaultDuration, "Set the duration")
|
||||
|
||||
selector := fs.String("selector", defaultSelector, "Set the selector")
|
||||
fs.StringVar(selector, "s", defaultSelector, "Set the selector")
|
||||
|
||||
return fs
|
||||
}(),
|
||||
Use: "[--selector <selector>] [--duration <sec>]",
|
||||
Short: "Toggle the power on/off",
|
||||
})
|
||||
}
|
||||
|
||||
func ToggleCmd(args CmdArgs) (int, error) {
|
||||
c := args.Client
|
||||
duration := args.Flags.Float64("duration")
|
||||
|
Loading…
Reference in New Issue
Block a user