forked from TrueCloudLab/rclone
config: add password sub command for setting obscured passwords
This commit is contained in:
parent
4355f3fe97
commit
2423fa40e2
2 changed files with 36 additions and 0 deletions
|
@ -16,6 +16,7 @@ func init() {
|
||||||
configCommand.AddCommand(configCreateCommand)
|
configCommand.AddCommand(configCreateCommand)
|
||||||
configCommand.AddCommand(configUpdateCommand)
|
configCommand.AddCommand(configUpdateCommand)
|
||||||
configCommand.AddCommand(configDeleteCommand)
|
configCommand.AddCommand(configDeleteCommand)
|
||||||
|
configCommand.AddCommand(configPasswordCommand)
|
||||||
}
|
}
|
||||||
|
|
||||||
var configCommand = &cobra.Command{
|
var configCommand = &cobra.Command{
|
||||||
|
@ -121,3 +122,20 @@ var configDeleteCommand = &cobra.Command{
|
||||||
fs.DeleteRemote(args[0])
|
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)
|
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
|
// JSONListProviders prints all the providers and options in JSON format
|
||||||
func JSONListProviders() error {
|
func JSONListProviders() error {
|
||||||
b, err := json.MarshalIndent(fsRegistry, "", " ")
|
b, err := json.MarshalIndent(fsRegistry, "", " ")
|
||||||
|
|
Loading…
Add table
Reference in a new issue