Skip to content

Commit 09adbd8

Browse files
committed
FIx
1 parent f5a9a5d commit 09adbd8

11 files changed

Lines changed: 117 additions & 12 deletions
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Generate a S3 tool configuration file.
2+
3+
USAGE:
4+
scw object config get [arg=value ...]
5+
6+
EXAMPLES:
7+
Generate a s3cmd config file for Paris region
8+
scw object config get region=fr-par type=s3cmd
9+
10+
Generate a rclone config file for default region
11+
scw object config get type=rclone
12+
13+
Generate a mc (minio) config file for default region
14+
scw object config get type=mc
15+
16+
ARGS:
17+
type Type of S3 tool you want to generate a config for (rclone | s3cmd | mc)
18+
[name=scaleway] Name of the s3 remote you want to generate
19+
[region] Region to target. If none is passed will use default region from the config (fr-par | nl-ams)
20+
21+
FLAGS:
22+
-h, --help help for get
23+
24+
GLOBAL FLAGS:
25+
-D, --debug Enable debug mode
26+
-o, --output string Output format: json or human
27+
-p, --profile string The config profile to use
28+
29+
SEE ALSO:
30+
# Install a S3 tool configuration file
31+
scw object config install
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Install a S3 tool configuration file to its default location.
2+
3+
USAGE:
4+
scw object config install [arg=value ...]
5+
6+
EXAMPLES:
7+
Install a s3cmd config file for Paris region
8+
scw object config install region=fr-par type=s3cmd
9+
10+
Install a rclone config file for default region
11+
scw object config install type=rclone
12+
13+
Install a mc (minio) config file for default region
14+
scw object config install type=mc
15+
16+
ARGS:
17+
type Type of S3 tool you want to generate a config for (rclone | s3cmd | mc)
18+
[name=scaleway] Name of the s3 remote you want to generate
19+
[region] Region to target. If none is passed will use default region from the config (fr-par | nl-ams)
20+
21+
FLAGS:
22+
-h, --help help for install
23+
24+
GLOBAL FLAGS:
25+
-D, --debug Enable debug mode
26+
-o, --output string Output format: json or human
27+
-p, --profile string The config profile to use
28+
29+
SEE ALSO:
30+
# Generate a S3 tool configuration file
31+
scw object config get
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Configuration generation for S3 tools.
2+
3+
USAGE:
4+
scw object config <command>
5+
6+
AVAILABLE COMMANDS:
7+
get Generate a S3 tool configuration file
8+
install Install a S3 tool configuration file to its default location
9+
10+
FLAGS:
11+
-h, --help help for config
12+
13+
GLOBAL FLAGS:
14+
-D, --debug Enable debug mode
15+
-o, --output string Output format: json or human
16+
-p, --profile string The config profile to use
17+
18+
Use "scw object config [command] --help" for more information about a command.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Object-storage utils
2+
3+
USAGE:
4+
scw object <command>
5+
6+
AVAILABLE COMMANDS:
7+
config Manage configuration files for popular S3 tools
8+
9+
FLAGS:
10+
-h, --help help for object
11+
12+
GLOBAL FLAGS:
13+
-D, --debug Enable debug mode
14+
-o, --output string Output format: json or human
15+
-p, --profile string The config profile to use
16+
17+
Use "scw object [command] --help" for more information about a command.

internal/namespaces/object/v1/custom_config_get.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,22 @@ func configGetCommand() *core.Command {
1919
Namespace: "object",
2020
Resource: "config",
2121
Verb: "get",
22-
Short: "Generate a S3 related configuration file",
23-
Long: "Generate a S3 related configuration file.",
22+
Short: "Generate a S3 tool configuration file",
23+
Long: "Generate a S3 tool configuration file.",
2424
ArgsType: reflect.TypeOf(getArgs{}),
2525
ArgSpecs: []*core.ArgSpec{
2626
{
2727
Name: "type",
2828
Short: "Type of S3 tool you want to generate a config for",
2929
Required: true,
30-
EnumValues: supportedTools,
30+
EnumValues: []string{rclone.String(), s3cmd.String(), mc.String()},
3131
},
3232
{
3333
Name: "name",
3434
Short: "Name of the s3 remote you want to generate",
3535
Required: false,
3636
Default: func() (value string, doc string) {
37-
return "scaleway", "default value"
37+
return "scaleway", "scaleway"
3838
},
3939
},
4040
core.RegionArgSpec(scw.RegionFrPar, scw.RegionNlAms),

internal/namespaces/object/v1/custom_config_install.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,22 @@ func configInstallCommand() *core.Command {
2222
Namespace: "object",
2323
Resource: "config",
2424
Verb: "install",
25-
Short: "Install a S3 related configuration file to its default location",
26-
Long: "Install a S3 related configuration file.",
25+
Short: "Install a S3 tool configuration file to its default location",
26+
Long: "Install a S3 tool configuration file to its default location.",
2727
ArgsType: reflect.TypeOf(installArgs{}),
2828
ArgSpecs: []*core.ArgSpec{
2929
{
3030
Name: "type",
3131
Short: "Type of S3 tool you want to generate a config for",
3232
Required: true,
33-
EnumValues: supportedTools,
33+
EnumValues: []string{rclone.String(), s3cmd.String(), mc.String()},
3434
},
3535
{
3636
Name: "name",
3737
Short: "Name of the s3 remote you want to generate",
3838
Required: false,
3939
Default: func() (value string, doc string) {
40-
return "scaleway", "default value"
40+
return "scaleway", "scaleway"
4141
},
4242
},
4343
core.RegionArgSpec(scw.RegionFrPar, scw.RegionNlAms),

internal/namespaces/object/v1/s3configfile.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ import (
1515

1616
type s3tool string
1717

18+
func (c s3tool) String() string {
19+
return string(c)
20+
}
21+
1822
type s3config struct {
1923
AccessKey string
2024
SecretKey string
@@ -71,6 +75,10 @@ func newS3Config(ctx context.Context, region scw.Region, name string) (s3config,
7175
if !secretExists {
7276
return s3config{}, fmt.Errorf("no secret key found")
7377
}
78+
if region == "" {
79+
defaultRegion, _ := client.GetDefaultRegion()
80+
region = defaultRegion
81+
}
7482
config := s3config{
7583
AccessKey: accessKey,
7684
SecretKey: secretKey,
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":"9","hosts":{"scaleway_fr-par":{"url":"https://s3.fr-par.scw.cloud","accessKey":"SCWXXXXXXXXXXXXXXXXX","secretKey":"11111111-1111-1111-1111-111111111111","api":"S3v2"}}}
1+
{"version":"9","hosts":{"scaleway":{"url":"https://s3.fr-par.scw.cloud","accessKey":"SCWXXXXXXXXXXXXXXXXX","secretKey":"11111111-1111-1111-1111-111111111111","api":"S3v2"}}}

internal/namespaces/object/v1/testdata/test-config-get-default-rclone.stdout.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Generated by scaleway-cli command
22
# Configuration file for rclone https://rclone.org/s3/#scaleway
33
# Default location: $HOME/.config/rclone/rclone.conf
4-
[scaleway_fr-par]
4+
[scaleway]
55
type = s3
66
env_auth = false
77
endpoint = s3.fr-par.scw.cloud
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":"9","hosts":{"scaleway_nl-ams":{"url":"https://s3.nl-ams.scw.cloud","accessKey":"SCWXXXXXXXXXXXXXXXXX","secretKey":"11111111-1111-1111-1111-111111111111","api":"S3v2"}}}
1+
{"version":"9","hosts":{"scaleway":{"url":"https://s3.nl-ams.scw.cloud","accessKey":"SCWXXXXXXXXXXXXXXXXX","secretKey":"11111111-1111-1111-1111-111111111111","api":"S3v2"}}}

0 commit comments

Comments
 (0)