aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastien Douheret <sebastien.douheret@iot.bzh>2018-01-05 00:19:29 +0100
committerSebastien Douheret <sebastien.douheret@iot.bzh>2018-01-05 00:19:29 +0100
commit36b8457bdd2e4fd222dec676988ffdf7f8e50f2f (patch)
tree8dc4df7472c7dfbd8b075c2fa8580c70603f02cc
parentbbd16c4e5951055ed73f7282dfd22cc4b3ab5700 (diff)
Improved SDK installation output and add -debug option.
-rw-r--r--cmd-sdks.go45
1 files changed, 35 insertions, 10 deletions
diff --git a/cmd-sdks.go b/cmd-sdks.go
index 7d257aa..e140856 100644
--- a/cmd-sdks.go
+++ b/cmd-sdks.go
@@ -82,6 +82,10 @@ func initCmdSdks(cmdDef *[]cli.Command) {
Usage: "use this file to install SDK",
},
cli.BoolFlag{
+ Name: "debug",
+ Usage: "enable debug mode (useful to investigate install issue)",
+ },
+ cli.BoolFlag{
Name: "force",
Usage: "force SDK installation when already installed",
},
@@ -179,11 +183,11 @@ func _displaySdks(sdks []xaapiv1.SDK, verbose bool, all bool, filter string) {
if all {
fmt.Fprintf(writer, "List of available SDKs: \n")
} else {
- fmt.Fprintf(writer, "List of installed SDKs: \n")
+ fmt.Fprintf(writer, "List of installed SDKs: \n")
}
- fmt.Fprintf(writer, " ID\tNAME\tSTATUS\tVERSION\tARCH\n")
+ fmt.Fprintf(writer, "ID\t NAME\t STATUS\t VERSION\t ARCH\n")
}
- fmt.Fprintf(writer, " %s\t%s\t%s\t%s\t%s\n", s.ID[:8], s.Name, s.Status, s.Version, s.Arch)
+ fmt.Fprintf(writer, "%s\t %s\t %s\t %s\t %s\n", s.ID[:8], s.Name, s.Status, s.Version, s.Arch)
}
first = false
}
@@ -202,8 +206,11 @@ func _sdksListGet(sdks *[]xaapiv1.SDK) error {
func sdksInstall(ctx *cli.Context) error {
id := GetID(ctx)
- if id == "" {
- return cli.NewExitError("id parameter or option must be set", 1)
+ file := ctx.String("file")
+ force := ctx.Bool("force")
+
+ if id == "" && file == "" {
+ return cli.NewExitError("id or file parameter or option must be set", 1)
}
// Process Socket IO events
@@ -242,23 +249,32 @@ func sdksInstall(ctx *cli.Context) error {
return cli.NewExitError(err, 1)
}
- file := ctx.String("file")
- force := ctx.Bool("force")
url := XdsServerComputeURL("/sdks")
- sdks := xaapiv1.SDKInstallArgs{ID: id, Filename: file, Force: force}
+ sdks := xaapiv1.SDKInstallArgs{
+ ID: id,
+ Filename: file,
+ Force: force,
+ }
+
+ if ctx.Bool("debug") {
+ sdks.InstallArgs = []string{"--debug"}
+ }
+
newSdk := xaapiv1.SDK{}
if err := HTTPCli.Post(url, &sdks, &newSdk); err != nil {
return cli.NewExitError(err, 1)
}
Log.Debugf("Result of %s: %v", url, newSdk)
- fmt.Printf("Installation of '%s' SDK (id %v) successfully started.\n", newSdk.Name, newSdk.ID)
+ fmt.Printf("Installation of '%s' SDK successfully started.\n", newSdk.Name)
+ // TODO: trap CTRL+C and print question: "Installation of xxx is in progress, press 'a' to abort, 'b' to continue in background or 'c' to continue installation"
// Wait exit
select {
case res := <-exitChan:
if res.code == 0 {
Log.Debugln("Exit successfully")
+ fmt.Println("SDK ID " + newSdk.ID + " successfully installed.")
}
if res.error != "" {
Log.Debugln("Exit with ERROR: ", res.error)
@@ -273,7 +289,16 @@ func sdksUnInstall(ctx *cli.Context) error {
return cli.NewExitError("id parameter or option must be set", 1)
}
- return fmt.Errorf("not supported yet")
+ delSdk := xaapiv1.SDK{}
+ url := XdsServerComputeURL("/sdks/" + id)
+ if err := HTTPCli.Delete(url, &delSdk); err != nil {
+ return cli.NewExitError(err, 1)
+ }
+
+ Log.Debugf("Result of %s: %v", url, delSdk)
+
+ fmt.Println("SDK ID " + delSdk.ID + " successfully deleted.")
+ return nil
}
func sdksAbort(ctx *cli.Context) error {