diff --git a/README.md b/README.md index b39ae3fd8b..b7b024f1b2 100644 --- a/README.md +++ b/README.md @@ -1129,7 +1129,7 @@ $ scw inspect myserver | jq '.[0].public_ip.address' ### master (unreleased) -* No entry +* Support of `scw _userdata name VAR=@/path/to/file` ([#183](https://github.com/scaleway/scaleway-cli/issues/183)) View full [commits list](https://github.com/scaleway/scaleway-cli/compare/v1.5.0...master) diff --git a/pkg/cli/x_userdata.go b/pkg/cli/x_userdata.go index 3cf168d094..3d08fe4894 100644 --- a/pkg/cli/x_userdata.go +++ b/pkg/cli/x_userdata.go @@ -6,6 +6,7 @@ package cli import ( "fmt" + "io/ioutil" "strings" "github.com/scaleway/scaleway-cli/pkg/api" @@ -82,8 +83,17 @@ func runUserdata(cmd *Command, args []string) error { default: value := parts[1] if value != "" { + var data []byte // Set userdata - err := Api.PatchUserdata(serverID, key, []byte(value)) + if value[0] == '@' { + data, err = ioutil.ReadFile(value[1:]) + if err != nil { + return err + } + } else { + data = []byte(value) + } + err := Api.PatchUserdata(serverID, key, data) if err != nil { return err }