Skip to content

Commit ecbaabd

Browse files
authored
Merge branch 'scaleway:master' into master
2 parents 27f6efa + e0f433b commit ecbaabd

File tree

7 files changed

+101
-34
lines changed

7 files changed

+101
-34
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲
2+
🟥🟥🟥 STDERR️️ 🟥🟥🟥️
3+
Edit the configuration file with the default editor
4+
5+
USAGE:
6+
scw config edit
7+
8+
FLAGS:
9+
-h, --help help for edit
10+
11+
GLOBAL FLAGS:
12+
-c, --config string The path to the config file
13+
-D, --debug Enable debug mode
14+
-o, --output string Output format: json or human, see 'scw help output' for more info (default "human")
15+
-p, --profile string The config profile to use

cmd/scw/testdata/test-main-usage-usage.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
USAGE:
44
scw <command>
55

6-
AVAILABLE COMMANDS:
6+
AI COMMANDS:
77
inference This API allows you to handle your Managed Inference services
88

99
BAREMETAL COMMANDS:

docs/commands/config.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ Read more about the config management engine at https://github.com/scaleway/scal
2828

2929
- [Destroy the config file](#destroy-the-config-file)
3030
- [Dump the config file](#dump-the-config-file)
31+
- [Edit the configuration file](#edit-the-configuration-file)
3132
- [Get a value from the config file](#get-a-value-from-the-config-file)
3233
- [Import configurations from another file](#import-configurations-from-another-file)
3334
- [Get config values from the config file for the current profile](#get-config-values-from-the-config-file-for-the-current-profile)
@@ -68,6 +69,20 @@ scw config dump
6869

6970

7071

72+
## Edit the configuration file
73+
74+
Edit the configuration file with the default editor
75+
76+
Edit the configuration file with the default editor
77+
78+
**Usage:**
79+
80+
```
81+
scw config edit
82+
```
83+
84+
85+
7186
## Get a value from the config file
7287

7388

go.mod

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ module github.com/scaleway/scaleway-cli/v2
33
go 1.24.0
44

55
require (
6-
github.com/aws/aws-sdk-go-v2 v1.36.6
7-
github.com/aws/aws-sdk-go-v2/service/s3 v1.84.1
6+
github.com/aws/aws-sdk-go-v2 v1.37.0
7+
github.com/aws/aws-sdk-go-v2/service/s3 v1.85.0
88
github.com/buildpacks/pack v0.34.2
99
github.com/c-bata/go-prompt v0.2.6
1010
github.com/charmbracelet/bubbletea v1.3.6
@@ -55,24 +55,24 @@ require (
5555
github.com/ProtonMail/go-crypto v1.1.3 // indirect
5656
github.com/agext/levenshtein v1.2.3 // indirect
5757
github.com/apex/log v1.9.0 // indirect
58-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 // indirect
58+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0 // indirect
5959
github.com/aws/aws-sdk-go-v2/config v1.27.7 // indirect
6060
github.com/aws/aws-sdk-go-v2/credentials v1.17.7 // indirect
6161
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.3 // indirect
62-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37 // indirect
63-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37 // indirect
62+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0 // indirect
63+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0 // indirect
6464
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
65-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.37 // indirect
65+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.0 // indirect
6666
github.com/aws/aws-sdk-go-v2/service/ecr v1.24.5 // indirect
6767
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.21.5 // indirect
68-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect
69-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.5 // indirect
70-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18 // indirect
71-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.18 // indirect
68+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 // indirect
69+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.0 // indirect
70+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0 // indirect
71+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.0 // indirect
7272
github.com/aws/aws-sdk-go-v2/service/sso v1.20.2 // indirect
7373
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.2 // indirect
7474
github.com/aws/aws-sdk-go-v2/service/sts v1.28.4 // indirect
75-
github.com/aws/smithy-go v1.22.4 // indirect
75+
github.com/aws/smithy-go v1.22.5 // indirect
7676
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20231213181459-b0fcec718dc6 // indirect
7777
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
7878
github.com/beorn7/perks v1.0.1 // indirect

go.sum

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -60,46 +60,46 @@ github.com/aphistic/sweet v0.2.0/go.mod h1:fWDlIh/isSE9n6EPsRmC0det+whmX6dJid3st
6060
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
6161
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
6262
github.com/aws/aws-sdk-go v1.20.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
63-
github.com/aws/aws-sdk-go-v2 v1.36.6 h1:zJqGjVbRdTPojeCGWn5IR5pbJwSQSBh5RWFTQcEQGdU=
64-
github.com/aws/aws-sdk-go-v2 v1.36.6/go.mod h1:EYrzvCCN9CMUTa5+6lf6MM4tq3Zjp8UhSGR/cBsjai0=
65-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 h1:12SpdwU8Djs+YGklkinSSlcrPyj3H4VifVsKf78KbwA=
66-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11/go.mod h1:dd+Lkp6YmMryke+qxW/VnKyhMBDTYP41Q2Bb+6gNZgY=
63+
github.com/aws/aws-sdk-go-v2 v1.37.0 h1:YtCOESR/pN4j5oA7cVHSfOwIcuh/KwHC4DOSXFbv5F0=
64+
github.com/aws/aws-sdk-go-v2 v1.37.0/go.mod h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg=
65+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0 h1:6GMWV6CNpA/6fbFHnoAjrv4+LGfyTqZz2LtCHnspgDg=
66+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0/go.mod h1:/mXlTIVG9jbxkqDnr5UQNQxW1HRYxeGklkM9vAFeabg=
6767
github.com/aws/aws-sdk-go-v2/config v1.27.7 h1:JSfb5nOQF01iOgxFI5OIKWwDiEXWTyTgg1Mm1mHi0A4=
6868
github.com/aws/aws-sdk-go-v2/config v1.27.7/go.mod h1:PH0/cNpoMO+B04qET699o5W92Ca79fVtbUnvMIZro4I=
6969
github.com/aws/aws-sdk-go-v2/credentials v1.17.7 h1:WJd+ubWKoBeRh7A5iNMnxEOs982SyVKOJD+K8HIezu4=
7070
github.com/aws/aws-sdk-go-v2/credentials v1.17.7/go.mod h1:UQi7LMR0Vhvs+44w5ec8Q+VS+cd10cjwgHwiVkE0YGU=
7171
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.3 h1:p+y7FvkK2dxS+FEwRIDHDe//ZX+jDhP8HHE50ppj4iI=
7272
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.3/go.mod h1:/fYB+FZbDlwlAiynK9KDXlzZl3ANI9JkD0Uhz5FjNT4=
73-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37 h1:osMWfm/sC/L4tvEdQ65Gri5ZZDCUpuYJZbTTDrsn4I0=
74-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37/go.mod h1:ZV2/1fbjOPr4G4v38G3Ww5TBT4+hmsK45s/rxu1fGy0=
75-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37 h1:v+X21AvTb2wZ+ycg1gx+orkB/9U6L7AOp93R7qYxsxM=
76-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37/go.mod h1:G0uM1kyssELxmJ2VZEfG0q2npObR3BAkF3c1VsfVnfs=
73+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0 h1:H2iZoqW/v2Jnrh1FnU725Bq6KJ0k2uP63yH+DcY+HUI=
74+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0/go.mod h1:L0FqLbwMXHvNC/7crWV1iIxUlOKYZUE8KuTIA+TozAI=
75+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0 h1:EDped/rNzAhFPhVY0sDGbtD16OKqksfA8OjF/kLEgw8=
76+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0/go.mod h1:uUI335jvzpZRPpjYx6ODc/wg1qH+NnoSTK/FwVeK0C0=
7777
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
7878
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
79-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.37 h1:XTZZ0I3SZUHAtBLBU6395ad+VOblE0DwQP6MuaNeics=
80-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.37/go.mod h1:Pi6ksbniAWVwu2S8pEzcYPyhUkAcLaufxN7PfAUQjBk=
79+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.0 h1:iLvW/zOkHGU3BDU5thWnj+UZ9pjhuVhv1loLj7yVtBw=
80+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.0/go.mod h1:Fn3gvhdF1x5Rs9nUoCy/fJT1ms8f8dO7RqM9lJHuazQ=
8181
github.com/aws/aws-sdk-go-v2/service/ecr v1.24.5 h1:wLPDAUFT50NEXGXpywRU3AA74pg35RJjWol/68ruvQQ=
8282
github.com/aws/aws-sdk-go-v2/service/ecr v1.24.5/go.mod h1:AOHmGMoPtSY9Zm2zBuwUJQBisIvYAZeA1n7b6f4e880=
8383
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.21.5 h1:PQp21GBlGNaQ+AVJAB8w2KTmLx0DkFS2fDET2Iy3+f0=
8484
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.21.5/go.mod h1:WMntdAol8KgeYsa5sDZPsRTXs4jVZIMYu0eQVVIQxnc=
85-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 h1:CXV68E2dNqhuynZJPB80bhPQwAKqBWVer887figW6Jc=
86-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4/go.mod h1:/xFi9KtvBXP97ppCz1TAEvU1Uf66qvid89rbem3wCzQ=
87-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.5 h1:M5/B8JUaCI8+9QD+u3S/f4YHpvqE9RpSkV3rf0Iks2w=
88-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.5/go.mod h1:Bktzci1bwdbpuLiu3AOksiNPMl/LLKmX1TWmqp2xbvs=
89-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18 h1:vvbXsA2TVO80/KT7ZqCbx934dt6PY+vQ8hZpUZ/cpYg=
90-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18/go.mod h1:m2JJHledjBGNMsLOF1g9gbAxprzq3KjC8e4lxtn+eWg=
91-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.18 h1:OS2e0SKqsU2LiJPqL8u9x41tKc6MMEHrWjLVLn3oysg=
92-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.18/go.mod h1:+Yrk+MDGzlNGxCXieljNeWpoZTCQUQVL+Jk9hGGJ8qM=
93-
github.com/aws/aws-sdk-go-v2/service/s3 v1.84.1 h1:RkHXU9jP0DptGy7qKI8CBGsUJruWz0v5IgwBa2DwWcU=
94-
github.com/aws/aws-sdk-go-v2/service/s3 v1.84.1/go.mod h1:3xAOf7tdKF+qbb+XpU+EPhNXAdun3Lu1RcDrj8KC24I=
85+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM=
86+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44=
87+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.0 h1:qGyLBQPphYzUf+IIlb5tHnvg1U2Vc5hXPcP7oRSQfy0=
88+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.0/go.mod h1:g+dzKSLXiR/8ATkPXmLhPOI6rDdjLP3tngeo3FvDcIw=
89+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0 h1:eRhU3Sh8dGbaniI6B+I48XJMrTPRkK4DKo+vqIxziOU=
90+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0/go.mod h1:paNLV18DZ6FnWE/bd06RIKPDIFpjuvCkGKWTG/GDBeM=
91+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.0 h1:6jusT+XCcvnD+Elxvm7bUf5sCMTpZEp3AKjYQ4tWJSo=
92+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.0/go.mod h1:LimGpdIF/sTBdgqwOEkrArXLCoTamK/9L9x8IKBFTIc=
93+
github.com/aws/aws-sdk-go-v2/service/s3 v1.85.0 h1:gAV4NEp4A+JOrIdoXkAeyy6IOo7+X2s/jRuaHKYiMaU=
94+
github.com/aws/aws-sdk-go-v2/service/s3 v1.85.0/go.mod h1:JIQwK8sZ5MuKGm5rrFwp9MHUcyYEsQNpVixuPDlnwaU=
9595
github.com/aws/aws-sdk-go-v2/service/sso v1.20.2 h1:XOPfar83RIRPEzfihnp+U6udOveKZJvPQ76SKWrLRHc=
9696
github.com/aws/aws-sdk-go-v2/service/sso v1.20.2/go.mod h1:Vv9Xyk1KMHXrR3vNQe8W5LMFdTjSeWk0gBZBzvf3Qa0=
9797
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.2 h1:pi0Skl6mNl2w8qWZXcdOyg197Zsf4G97U7Sso9JXGZE=
9898
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.2/go.mod h1:JYzLoEVeLXk+L4tn1+rrkfhkxl6mLDEVaDSvGq9og90=
9999
github.com/aws/aws-sdk-go-v2/service/sts v1.28.4 h1:Ppup1nVNAOWbBOrcoOxaxPeEnSFB2RnnQdguhXpmeQk=
100100
github.com/aws/aws-sdk-go-v2/service/sts v1.28.4/go.mod h1:+K1rNPVyGxkRuv9NNiaZ4YhBFuyw2MMA9SlIJ1Zlpz8=
101-
github.com/aws/smithy-go v1.22.4 h1:uqXzVZNuNexwc/xrh6Tb56u89WDlJY6HS+KC0S4QSjw=
102-
github.com/aws/smithy-go v1.22.4/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
101+
github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw=
102+
github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
103103
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20231213181459-b0fcec718dc6 h1:PlJRmqKlSlEUlwem1c3zdPaEMtJc/ktnV7naD5Qvsx4=
104104
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20231213181459-b0fcec718dc6/go.mod h1:08sPJIlDHu4HwQ1xScPgsBWezvM6U10ghGKBJu0mowA=
105105
github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I=

internal/namespaces/config/commands.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ import (
66
"errors"
77
"fmt"
88
"os"
9+
"os/exec"
910
"reflect"
1011
"strings"
1112

1213
"github.com/fatih/color"
1314
"github.com/scaleway/scaleway-cli/v2/core"
15+
"github.com/scaleway/scaleway-cli/v2/internal/config"
1416
"github.com/scaleway/scaleway-cli/v2/internal/interactive"
1517
"github.com/scaleway/scaleway-cli/v2/internal/tabwriter"
1618
"github.com/scaleway/scaleway-cli/v2/internal/terminal"
@@ -34,6 +36,7 @@ func GetCommands() *core.Commands {
3436
configInfoCommand(),
3537
configImportCommand(),
3638
configValidateCommand(),
39+
configEditCommand(),
3740
)
3841
}
3942

@@ -770,6 +773,38 @@ The command goes through each profile present in the config file and validates i
770773
}
771774
}
772775

776+
func configEditCommand() *core.Command {
777+
type configEditArgs struct{}
778+
779+
return &core.Command{
780+
Namespace: "config",
781+
Resource: "edit",
782+
Short: "Edit the configuration file",
783+
Long: "Edit the configuration file with the default editor",
784+
ArgsType: reflect.TypeOf(configEditArgs{}),
785+
AllowAnonymousClient: true,
786+
Run: func(ctx context.Context, _ any) (i any, e error) {
787+
configPath := core.ExtractConfigPath(ctx)
788+
789+
defaultEditor := config.GetDefaultEditor()
790+
args := []string{configPath}
791+
792+
cmd := exec.Command(defaultEditor, args...)
793+
cmd.Stdin = os.Stdin
794+
cmd.Stdout = os.Stdout
795+
796+
err := cmd.Run()
797+
if err != nil {
798+
return nil, fmt.Errorf("failed to edit file %q: %w", configPath, err)
799+
}
800+
801+
return &core.SuccessResult{
802+
Message: "successfully wrote config",
803+
}, nil
804+
},
805+
}
806+
}
807+
773808
// Helper functions
774809
func getProfileValue(profile *scw.Profile, fieldName string) (any, error) {
775810
field, err := getProfileField(profile, fieldName)

internal/namespaces/inference/v1/custom.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,7 @@ import "github.com/scaleway/scaleway-cli/v2/core"
55
func GetCommands() *core.Commands {
66
cmds := GetGeneratedCommands()
77

8+
cmds.MustFind("inference").Groups = []string{"ai"}
9+
810
return cmds
911
}

0 commit comments

Comments
 (0)