Add global config for passing '--option' flags
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
8b5d15d4b2
commit
c0e1795a80
25
restic.go
25
restic.go
@ -187,16 +187,17 @@ func (fo ForgetOpts) ToArgs() (args []string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type ResticGlobalOpts struct {
|
type ResticGlobalOpts struct {
|
||||||
CaCertFile string `hcl:"CaCertFile,optional"`
|
CaCertFile string `hcl:"CaCertFile,optional"`
|
||||||
CacheDir string `hcl:"CacheDir,optional"`
|
CacheDir string `hcl:"CacheDir,optional"`
|
||||||
PasswordFile string `hcl:"PasswordFile,optional"`
|
PasswordFile string `hcl:"PasswordFile,optional"`
|
||||||
TLSClientCertFile string `hcl:"TlsClientCertFile,optional"`
|
TLSClientCertFile string `hcl:"TlsClientCertFile,optional"`
|
||||||
LimitDownload int `hcl:"LimitDownload,optional"`
|
LimitDownload int `hcl:"LimitDownload,optional"`
|
||||||
LimitUpload int `hcl:"LimitUpload,optional"`
|
LimitUpload int `hcl:"LimitUpload,optional"`
|
||||||
VerboseLevel int `hcl:"VerboseLevel,optional"`
|
Options map[string]string `hcl:"Options,optional"`
|
||||||
CleanupCache bool `hcl:"CleanupCache,optional"`
|
VerboseLevel int `hcl:"VerboseLevel,optional"`
|
||||||
NoCache bool `hcl:"NoCache,optional"`
|
CleanupCache bool `hcl:"CleanupCache,optional"`
|
||||||
NoLock bool `hcl:"NoLock,optional"`
|
NoCache bool `hcl:"NoCache,optional"`
|
||||||
|
NoLock bool `hcl:"NoLock,optional"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (glo ResticGlobalOpts) ToArgs() (args []string) {
|
func (glo ResticGlobalOpts) ToArgs() (args []string) {
|
||||||
@ -211,6 +212,10 @@ func (glo ResticGlobalOpts) ToArgs() (args []string) {
|
|||||||
args = maybeAddArgBool(args, "--no-cache", glo.NoCache)
|
args = maybeAddArgBool(args, "--no-cache", glo.NoCache)
|
||||||
args = maybeAddArgBool(args, "--no-lock", glo.NoLock)
|
args = maybeAddArgBool(args, "--no-lock", glo.NoLock)
|
||||||
|
|
||||||
|
for key, value := range glo.Options {
|
||||||
|
args = append(args, fmt.Sprintf("--option %s='%s'", key, value))
|
||||||
|
}
|
||||||
|
|
||||||
return args
|
return args
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,6 +34,9 @@ func TestGlobalOptions(t *testing.T) {
|
|||||||
CleanupCache: true,
|
CleanupCache: true,
|
||||||
NoCache: true,
|
NoCache: true,
|
||||||
NoLock: true,
|
NoLock: true,
|
||||||
|
Options: map[string]string{
|
||||||
|
"key": "a long value",
|
||||||
|
},
|
||||||
}.ToArgs()
|
}.ToArgs()
|
||||||
|
|
||||||
expected := []string{
|
expected := []string{
|
||||||
@ -47,6 +50,7 @@ func TestGlobalOptions(t *testing.T) {
|
|||||||
"--cleanup-cache",
|
"--cleanup-cache",
|
||||||
"--no-cache",
|
"--no-cache",
|
||||||
"--no-lock",
|
"--no-lock",
|
||||||
|
"--option key='a long value'",
|
||||||
}
|
}
|
||||||
|
|
||||||
AssertEqual(t, "args didn't match", expected, args)
|
AssertEqual(t, "args didn't match", expected, args)
|
||||||
|
Loading…
Reference in New Issue
Block a user