forked from Elara6331/itd
Compare commits
4 Commits
gatt_local
...
v0.0.6
| Author | SHA1 | Date | |
|---|---|---|---|
| 19bacf29b2 | |||
| a78650e526 | |||
| 71e9caf0bc | |||
| 1f5a6365bc |
4
Makefile
4
Makefile
@@ -4,8 +4,8 @@ SERVICE_PREFIX = $(DESTDIR)$(PREFIX)/lib/systemd/user
|
|||||||
CFG_PREFIX = $(DESTDIR)/etc
|
CFG_PREFIX = $(DESTDIR)/etc
|
||||||
|
|
||||||
all: version.txt
|
all: version.txt
|
||||||
go build $(GOFLAGS)
|
go build
|
||||||
go build ./cmd/itctl $(GOFLAGS)
|
go build ./cmd/itctl
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f itctl
|
rm -f itctl
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"time"
|
||||||
"context"
|
"context"
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
@@ -24,8 +25,17 @@ func main() {
|
|||||||
syscall.SIGTERM,
|
syscall.SIGTERM,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// This goroutine ensures that itctl will exit
|
||||||
|
// at most 200ms after the user sends SIGINT/SIGTERM.
|
||||||
|
go func() {
|
||||||
|
<-ctx.Done()
|
||||||
|
time.Sleep(200*time.Millisecond)
|
||||||
|
os.Exit(0)
|
||||||
|
}()
|
||||||
|
|
||||||
app := cli.App{
|
app := cli.App{
|
||||||
Name: "itctl",
|
Name: "itctl",
|
||||||
|
HideHelpCommand: true,
|
||||||
Flags: []cli.Flag{
|
Flags: []cli.Flag{
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: "socket-path",
|
Name: "socket-path",
|
||||||
@@ -35,6 +45,12 @@ func main() {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
Commands: []*cli.Command{
|
Commands: []*cli.Command{
|
||||||
|
{
|
||||||
|
Name: "help",
|
||||||
|
ArgsUsage: "<command>",
|
||||||
|
Usage: "Display help screen for a command",
|
||||||
|
Action: helpCmd,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
Name: "filesystem",
|
Name: "filesystem",
|
||||||
Aliases: []string{"fs"},
|
Aliases: []string{"fs"},
|
||||||
@@ -229,11 +245,13 @@ func main() {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
Before: func(c *cli.Context) error {
|
Before: func(c *cli.Context) error {
|
||||||
newClient, err := api.New(c.String("socket-path"))
|
if !isHelpCmd() {
|
||||||
if err != nil {
|
newClient, err := api.New(c.String("socket-path"))
|
||||||
return err
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
client = newClient
|
||||||
}
|
}
|
||||||
client = newClient
|
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
After: func(*cli.Context) error {
|
After: func(*cli.Context) error {
|
||||||
@@ -249,3 +267,21 @@ func main() {
|
|||||||
log.Fatal().Err(err).Msg("Error while running app")
|
log.Fatal().Err(err).Msg("Error while running app")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func helpCmd(c *cli.Context) error {
|
||||||
|
cmdArgs := append([]string{os.Args[0]}, c.Args().Slice()...)
|
||||||
|
cmdArgs = append(cmdArgs, "-h")
|
||||||
|
return c.App.RunContext(c.Context, cmdArgs)
|
||||||
|
}
|
||||||
|
|
||||||
|
func isHelpCmd() bool {
|
||||||
|
if len(os.Args) == 1 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
for _, arg := range os.Args {
|
||||||
|
if arg == "-h" || arg == "help" {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user