mirror of
https://github.com/rclone/rclone.git
synced 2024-11-22 08:23:47 +01:00
config: add password sub command for setting obscured passwords
This commit is contained in:
parent
4355f3fe97
commit
2423fa40e2
@ -16,6 +16,7 @@ func init() {
|
||||
configCommand.AddCommand(configCreateCommand)
|
||||
configCommand.AddCommand(configUpdateCommand)
|
||||
configCommand.AddCommand(configDeleteCommand)
|
||||
configCommand.AddCommand(configPasswordCommand)
|
||||
}
|
||||
|
||||
var configCommand = &cobra.Command{
|
||||
@ -121,3 +122,20 @@ var configDeleteCommand = &cobra.Command{
|
||||
fs.DeleteRemote(args[0])
|
||||
},
|
||||
}
|
||||
|
||||
var configPasswordCommand = &cobra.Command{
|
||||
Use: "password <name> [<key> <value>]+",
|
||||
Short: `Update password in an existing remote.`,
|
||||
Long: `
|
||||
Update an existing remote's password. The password
|
||||
should be passed in in pairs of <key> <value>.
|
||||
|
||||
For example to set password of a remote of name myremote you would do:
|
||||
|
||||
rclone config password myremote fieldname mypassword
|
||||
`,
|
||||
RunE: func(command *cobra.Command, args []string) error {
|
||||
cmd.CheckArgs(3, 256, command, args)
|
||||
return fs.PasswordRemote(args[0], args[1:])
|
||||
},
|
||||
}
|
||||
|
18
fs/config.go
18
fs/config.go
@ -1034,6 +1034,24 @@ func CreateRemote(name string, provider string, keyValues []string) error {
|
||||
return UpdateRemote(name, keyValues)
|
||||
}
|
||||
|
||||
// PasswordRemote adds the keyValues passed in to the remote of name.
|
||||
// keyValues should be key, value pairs.
|
||||
func PasswordRemote(name string, keyValues []string) error {
|
||||
if len(keyValues) != 2 {
|
||||
return errors.New("found key without value")
|
||||
}
|
||||
// Suppress Confirm
|
||||
Config.AutoConfirm = true
|
||||
passwd := MustObscure(keyValues[1])
|
||||
if passwd != "" {
|
||||
configData.SetValue(name, keyValues[0], passwd)
|
||||
RemoteConfig(name)
|
||||
ShowRemote(name)
|
||||
SaveConfig()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// JSONListProviders prints all the providers and options in JSON format
|
||||
func JSONListProviders() error {
|
||||
b, err := json.MarshalIndent(fsRegistry, "", " ")
|
||||
|
Loading…
Reference in New Issue
Block a user