Skip to content

Commit b7e3ea0

Browse files
committed
Support of 'scw run -d' option (#69)
1 parent 4cf44a8 commit b7e3ea0

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,9 @@ Run a command in a new server.
568568

569569
Options:
570570

571+
-a, --attach=false Attach to serial console
571572
--bootscript="" Assign a bootscript
573+
-d, --detach=false Run server in background and print server ID
572574
-e, --env="" Provide metadata tags passed to initrd (i.e., boot=resue INITRD_DEBUG=1)
573575
-h, --help=false Print usage
574576
--name="" Assign a name
@@ -577,9 +579,11 @@ Options:
577579
Examples:
578580

579581
$ scw run ubuntu-trusty
582+
$ scw run ubuntu-trusty bash
580583
$ scw run --name=mydocker docker docker run moul/nyancat:armhf
581584
$ scw run --bootscript=3.2.34 --env="boot=live rescue_image=http://j.mp/scaleway-ubuntu-trusty-tarball" 50GB bash
582-
$ scw run attach alpine
585+
$ scw run --attach alpine
586+
$ scw run --detach alpine
583587
```
584588

585589

@@ -1020,7 +1024,7 @@ $ scw inspect myserver | jq '.[0].public_ip.address'
10201024

10211025
#### Features
10221026

1023-
* No entry
1027+
* Support of `scw run -d` option ([#69](https://github.com/scaleway/scaleway-cli/issues/69))
10241028

10251029
#### Fixes
10261030

commands/run.go

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package commands
66

77
import (
8+
"fmt"
89
"os"
910
"time"
1011

@@ -22,9 +23,11 @@ var cmdRun = &types.Command{
2223
Help: "Run a command in a new server.",
2324
Examples: `
2425
$ scw run ubuntu-trusty
26+
$ scw run ubuntu-trusty bash
2527
$ scw run --name=mydocker docker docker run moul/nyancat:armhf
2628
$ scw run --bootscript=3.2.34 --env="boot=live rescue_image=http://j.mp/scaleway-ubuntu-trusty-tarball" 50GB bash
27-
$ scw run attach alpine
29+
$ scw run --attach alpine
30+
$ scw run --detach alpine
2831
`,
2932
}
3033

@@ -35,6 +38,7 @@ func init() {
3538
cmdRun.Flag.StringVar(&runCreateVolume, []string{"v", "-volume"}, "", "Attach additional volume (i.e., 50G)")
3639
cmdRun.Flag.BoolVar(&runHelpFlag, []string{"h", "-help"}, false, "Print usage")
3740
cmdRun.Flag.BoolVar(&runAttachFlag, []string{"a", "-attach"}, false, "Attach to serial console")
41+
cmdRun.Flag.BoolVar(&runDetachFlag, []string{"d", "-detach"}, false, "Run server in background and print server ID")
3842
// FIXME: handle start --timeout
3943
}
4044

@@ -45,6 +49,7 @@ var runCreateEnv string // -e, --env flag
4549
var runCreateVolume string // -v, --volume flag
4650
var runHelpFlag bool // -h, --help flag
4751
var runAttachFlag bool // -a, --attach flag
52+
var runDetachFlag bool // -d, --detach flag
4853

4954
func runRun(cmd *types.Command, args []string) {
5055
if runHelpFlag {
@@ -54,7 +59,13 @@ func runRun(cmd *types.Command, args []string) {
5459
cmd.PrintShortUsage()
5560
}
5661
if runAttachFlag && len(args) > 1 {
57-
log.Fatalf("Cannot use '--attach' and 'COMMAND [ARG...]' at the same time. See 'scw run --help'")
62+
log.Fatalf("Conflicting options: -a and COMMAND")
63+
}
64+
if runAttachFlag && runDetachFlag {
65+
log.Fatalf("Conflicting options: -a and -d")
66+
}
67+
if runDetachFlag && len(args) > 1 {
68+
log.Fatalf("Conflicting options: -d and COMMAND")
5869
}
5970

6071
// create IMAGE
@@ -73,6 +84,11 @@ func runRun(cmd *types.Command, args []string) {
7384
}
7485
log.Debugf("Server is booting")
7586

87+
if runDetachFlag {
88+
fmt.Println(serverID)
89+
return
90+
}
91+
7692
if runAttachFlag {
7793
// Attach to server serial
7894
log.Debugf("Attaching to server console")

0 commit comments

Comments
 (0)