Reworked command route handler logic, fixed arguments for enable_online commands
parent
a44c44baa8
commit
1427a023fd
|
@ -45,41 +45,154 @@ func main() {
|
||||||
Aliases: []string{"a"},
|
Aliases: []string{"a"},
|
||||||
Usage: "options for edgeapp management",
|
Usage: "options for edgeapp management",
|
||||||
Subcommands: []*cli.Command{
|
Subcommands: []*cli.Command{
|
||||||
|
{
|
||||||
|
Name: "install",
|
||||||
|
Aliases: []string{"i"},
|
||||||
|
Usage: "install the specified app (slug or package file)",
|
||||||
|
Action: func(c *cli.Context) error {
|
||||||
|
|
||||||
|
argumentError := checkArgumentsPresence(c, 1)
|
||||||
|
if argumentError != nil {
|
||||||
|
return argumentError
|
||||||
|
}
|
||||||
|
|
||||||
|
task := getCommandTask("install_edgeapp", fmt.Sprintf("{\"id\": \"%s\"}", c.Args().First()), true)
|
||||||
|
|
||||||
|
return cli.Exit(utils.ColorJsonString(task.Result.String), 0)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "remove",
|
||||||
|
Aliases: []string{"r"},
|
||||||
|
Usage: "remove the specified app",
|
||||||
|
Action: func(c *cli.Context) error {
|
||||||
|
|
||||||
|
argumentError := checkArgumentsPresence(c, 1)
|
||||||
|
if argumentError != nil {
|
||||||
|
return argumentError
|
||||||
|
}
|
||||||
|
|
||||||
|
task := getCommandTask("remove_edgeapp", fmt.Sprintf("{\"id\": \"%s\"}", c.Args().First()), true)
|
||||||
|
|
||||||
|
return cli.Exit(utils.ColorJsonString(task.Result.String), 0)
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
Name: "start",
|
Name: "start",
|
||||||
Aliases: []string{"s"},
|
Aliases: []string{"s"},
|
||||||
Usage: "start the specified app",
|
Usage: "start the specified app",
|
||||||
Action: func(c *cli.Context) error {
|
Action: func(c *cli.Context) error {
|
||||||
|
|
||||||
if c.Args().Get(0) == "" {
|
argumentError := checkArgumentsPresence(c, 1)
|
||||||
return cli.Exit(errorMissingApplicationSlug, 1)
|
if argumentError != nil {
|
||||||
|
return argumentError
|
||||||
}
|
}
|
||||||
|
|
||||||
task := tasks.ExecuteTask(tasks.GetBaseTask(
|
task := getCommandTask("start_edgeapp", fmt.Sprintf("{\"id\": \"%s\"}", c.Args().First()), true)
|
||||||
"start_edgeapp",
|
|
||||||
fmt.Sprintf("{\"id\": \"%s\"}", c.Args().First()),
|
|
||||||
))
|
|
||||||
|
|
||||||
return cli.Exit(utils.ColorJsonString(task.Result.String), 0)
|
return cli.Exit(utils.ColorJsonString(task.Result.String), 0)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "stop",
|
Name: "stop",
|
||||||
|
Aliases: []string{"k"},
|
||||||
Usage: "stop the specified app",
|
Usage: "stop the specified app",
|
||||||
Action: func(c *cli.Context) error {
|
Action: func(c *cli.Context) error {
|
||||||
|
|
||||||
if c.Args().Get(0) == "" {
|
argumentError := checkArgumentsPresence(c, 1)
|
||||||
return cli.Exit(errorMissingApplicationSlug, 1)
|
if argumentError != nil {
|
||||||
|
return argumentError
|
||||||
}
|
}
|
||||||
|
|
||||||
task := tasks.ExecuteTask(tasks.GetBaseTask(
|
task := getCommandTask("stop_edgeapp", fmt.Sprintf("{\"id\": \"%s\"}", c.Args().First()), true)
|
||||||
"stop_edgeapp",
|
|
||||||
fmt.Sprintf("{\"id\": \"%s\"}", c.Args().First()),
|
|
||||||
))
|
|
||||||
|
|
||||||
return cli.Exit(utils.ColorJsonString(task.Result.String), 0)
|
return cli.Exit(utils.ColorJsonString(task.Result.String), 0)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Name: "online",
|
||||||
|
Aliases: []string{"o"},
|
||||||
|
Usage: "set an app status for online access",
|
||||||
|
Subcommands: []*cli.Command{
|
||||||
|
{
|
||||||
|
Name: "enable",
|
||||||
|
Aliases: []string{"e"},
|
||||||
|
Usage: "set an app as accessible online",
|
||||||
|
Action: func(c *cli.Context) error {
|
||||||
|
|
||||||
|
argumentError := checkArgumentsPresence(c, 2)
|
||||||
|
if argumentError != nil {
|
||||||
|
return argumentError
|
||||||
|
}
|
||||||
|
|
||||||
|
task := getCommandTask(
|
||||||
|
"enable_online",
|
||||||
|
fmt.Sprintf(
|
||||||
|
"{\"id\": \"%s\", \"internet_url\": \"%s\"}",
|
||||||
|
c.Args().Get(0),
|
||||||
|
c.Args().Get(1),
|
||||||
|
),
|
||||||
|
true,
|
||||||
|
)
|
||||||
|
|
||||||
|
return cli.Exit(utils.ColorJsonString(task.Result.String), 0)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "disable",
|
||||||
|
Aliases: []string{"d"},
|
||||||
|
Usage: "set an app as local-network private",
|
||||||
|
Action: func(c *cli.Context) error {
|
||||||
|
|
||||||
|
argumentError := checkArgumentsPresence(c, 1)
|
||||||
|
if argumentError != nil {
|
||||||
|
return argumentError
|
||||||
|
}
|
||||||
|
|
||||||
|
task := getCommandTask("disable_online", fmt.Sprintf("{\"id\": \"%s\"}", c.Args().First()), true)
|
||||||
|
|
||||||
|
return cli.Exit(utils.ColorJsonString(task.Result.String), 0)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "dashboard",
|
||||||
|
Aliases: []string{"d"},
|
||||||
|
Usage: "set dashboard access",
|
||||||
|
Subcommands: []*cli.Command{
|
||||||
|
{
|
||||||
|
Name: "enable",
|
||||||
|
Aliases: []string{"e"},
|
||||||
|
Usage: "enable dashboard access",
|
||||||
|
Action: func(c *cli.Context) error {
|
||||||
|
argumentError := checkArgumentsPresence(c, 1)
|
||||||
|
if argumentError != nil {
|
||||||
|
return argumentError
|
||||||
|
}
|
||||||
|
|
||||||
|
task := getCommandTask("enable_public_dashboard", fmt.Sprintf("{\"internet_url\": \"%s\"}", c.Args().First()), true)
|
||||||
|
return cli.Exit(utils.ColorJsonString(task.Result.String), 0)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "disable",
|
||||||
|
Aliases: []string{"d"},
|
||||||
|
Usage: "disable dashboard access",
|
||||||
|
Action: func(c *cli.Context) error {
|
||||||
|
|
||||||
|
argumentError := checkArgumentsPresence(c, 1)
|
||||||
|
if argumentError != nil {
|
||||||
|
return argumentError
|
||||||
|
}
|
||||||
|
|
||||||
|
task := getCommandTask("disable_public_dashboard", "", true)
|
||||||
|
return cli.Exit(utils.ColorJsonString(task.Result.String), 0)
|
||||||
|
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -91,6 +204,30 @@ func main() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func checkArgumentsPresence(c *cli.Context, count int) error {
|
||||||
|
if count != 0 {
|
||||||
|
for i := 0; i < count; i++ {
|
||||||
|
if c.Args().Get(i) == "" {
|
||||||
|
return cli.Exit(errorMissingApplicationSlug, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func getCommandTask(taskSlug string, taskArgs string, execute bool) tasks.Task {
|
||||||
|
task := tasks.GetBaseTask(
|
||||||
|
taskSlug,
|
||||||
|
taskArgs,
|
||||||
|
)
|
||||||
|
|
||||||
|
if execute {
|
||||||
|
task = tasks.ExecuteTask(task)
|
||||||
|
}
|
||||||
|
|
||||||
|
return task
|
||||||
|
}
|
||||||
|
|
||||||
func startService() {
|
func startService() {
|
||||||
log.Printf("Starting edgeboxctl service")
|
log.Printf("Starting edgeboxctl service")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue