mirror of
https://github.com/rclone/rclone.git
synced 2025-12-11 05:43:15 +00:00
cmd/authorize: show required arguments in help text
This commit is contained in:
@@ -23,19 +23,23 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var commandDefinition = &cobra.Command{
|
var commandDefinition = &cobra.Command{
|
||||||
Use: "authorize",
|
Use: "authorize <fs name> [base64_json_blob | client_id client_secret]",
|
||||||
Short: `Remote authorization.`,
|
Short: `Remote authorization.`,
|
||||||
Long: `Remote authorization. Used to authorize a remote or headless
|
Long: `Remote authorization. Used to authorize a remote or headless
|
||||||
rclone from a machine with a browser - use as instructed by
|
rclone from a machine with a browser - use as instructed by
|
||||||
rclone config.
|
rclone config.
|
||||||
|
|
||||||
|
The command requires 1-3 arguments:
|
||||||
|
- fs name (e.g., "drive", "s3", etc.)
|
||||||
|
- Either a base64 encoded JSON blob obtained from a previous rclone config session
|
||||||
|
- Or a client_id and client_secret pair obtained from the remote service
|
||||||
|
|
||||||
Use --auth-no-open-browser to prevent rclone to open auth
|
Use --auth-no-open-browser to prevent rclone to open auth
|
||||||
link in default browser automatically.
|
link in default browser automatically.
|
||||||
|
|
||||||
Use --template to generate HTML output via a custom Go template. If a blank string is provided as an argument to this flag, the default template is used.`,
|
Use --template to generate HTML output via a custom Go template. If a blank string is provided as an argument to this flag, the default template is used.`,
|
||||||
Annotations: map[string]string{
|
Annotations: map[string]string{
|
||||||
"versionIntroduced": "v1.27",
|
"versionIntroduced": "v1.27",
|
||||||
// "groups": "",
|
|
||||||
},
|
},
|
||||||
RunE: func(command *cobra.Command, args []string) error {
|
RunE: func(command *cobra.Command, args []string) error {
|
||||||
cmd.CheckArgs(1, 3, command, args)
|
cmd.CheckArgs(1, 3, command, args)
|
||||||
|
|||||||
32
cmd/authorize/authorize_test.go
Normal file
32
cmd/authorize/authorize_test.go
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
package authorize
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestAuthorizeCommand(t *testing.T) {
|
||||||
|
// Test that the Use string is correctly formatted
|
||||||
|
if commandDefinition.Use != "authorize <fs name> [base64_json_blob | client_id client_secret]" {
|
||||||
|
t.Errorf("Command Use string doesn't match expected format: %s", commandDefinition.Use)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test that help output contains the argument information
|
||||||
|
buf := &bytes.Buffer{}
|
||||||
|
cmd := &cobra.Command{}
|
||||||
|
cmd.AddCommand(commandDefinition)
|
||||||
|
cmd.SetOut(buf)
|
||||||
|
cmd.SetArgs([]string{"authorize", "--help"})
|
||||||
|
err := cmd.Execute()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to execute help command: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
helpOutput := buf.String()
|
||||||
|
if !strings.Contains(helpOutput, "authorize <fs name>") {
|
||||||
|
t.Errorf("Help output doesn't contain correct usage information")
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user