@@ -20,6 +20,8 @@ var cmdRun = &Command{
2020 Help : "Run a command in a new server." ,
2121 Examples : `
2222 $ scw run ubuntu-trusty
23+ $ scw run --rm ubuntu-trusty
24+ $ scw run -a --rm ubuntu-trusty
2325 $ scw run --gateway=myotherserver ubuntu-trusty
2426 $ scw run ubuntu-trusty bash
2527 $ scw run --name=mydocker docker docker run moul/nyancat:armhf
@@ -38,11 +40,13 @@ func init() {
3840 cmdRun .Flag .BoolVar (& runAttachFlag , []string {"a" , "-attach" }, false , "Attach to serial console" )
3941 cmdRun .Flag .BoolVar (& runDetachFlag , []string {"d" , "-detach" }, false , "Run server in background and print server ID" )
4042 cmdRun .Flag .StringVar (& runGateway , []string {"g" , "-gateway" }, "" , "Use a SSH gateway" )
43+ cmdRun .Flag .BoolVar (& runAutoRemove , []string {"-rm" }, false , "Automatically remove the server when it exits" )
4144 // FIXME: handle start --timeout
4245}
4346
4447// Flags
4548var runCreateName string // --name flag
49+ var runAutoRemove bool // --rm flag
4650var runCreateBootscript string // --bootscript flag
4751var runCreateEnv string // -e, --env flag
4852var runCreateVolume string // -v, --volume flag
@@ -67,6 +71,9 @@ func runRun(cmd *Command, rawArgs []string) {
6771 if runDetachFlag && len (rawArgs ) > 1 {
6872 log .Fatalf ("Conflicting options: -d and COMMAND" )
6973 }
74+ if runAutoRemove && runDetachFlag {
75+ log .Fatalf ("Conflicting options: --attach and --rm" )
76+ }
7077
7178 args := commands.RunArgs {
7279 Attach : runAttachFlag ,
@@ -78,6 +85,7 @@ func runRun(cmd *Command, rawArgs []string) {
7885 Name : runCreateName ,
7986 Tags : strings .Split (runCreateEnv , " " ),
8087 Volumes : strings .Split (runCreateVolume , " " ),
88+ AutoRemove : runAutoRemove ,
8189 // FIXME: DynamicIPRequired
8290 // FIXME: Timeout
8391 }
0 commit comments