mirror of
https://github.com/restic/restic.git
synced 2026-03-18 20:15:56 +00:00
wip
This commit is contained in:
@@ -30,6 +30,7 @@ import (
|
||||
"github.com/restic/restic/internal/repository"
|
||||
"github.com/restic/restic/internal/restic"
|
||||
"github.com/restic/restic/internal/textfile"
|
||||
"github.com/restic/restic/internal/ui/config"
|
||||
|
||||
"github.com/restic/restic/internal/errors"
|
||||
|
||||
@@ -40,7 +41,8 @@ var version = "compiled manually"
|
||||
|
||||
// GlobalOptions hold all global options for restic.
|
||||
type GlobalOptions struct {
|
||||
Repo string
|
||||
config.Config
|
||||
|
||||
PasswordFile string
|
||||
Quiet bool
|
||||
Verbose int
|
||||
@@ -86,7 +88,10 @@ func init() {
|
||||
})
|
||||
|
||||
f := cmdRoot.PersistentFlags()
|
||||
f.StringVarP(&globalOptions.Repo, "repo", "r", os.Getenv("RESTIC_REPOSITORY"), "repository to backup to or restore from (default: $RESTIC_REPOSITORY)")
|
||||
|
||||
// these fields are embedded in config.Config and queried via f.Get[...]()
|
||||
f.StringP("repo", "r", "", "repository to backup to or restore from (default: $RESTIC_REPOSITORY)")
|
||||
|
||||
f.StringVarP(&globalOptions.PasswordFile, "password-file", "p", os.Getenv("RESTIC_PASSWORD_FILE"), "read the repository password from a file (default: $RESTIC_PASSWORD_FILE)")
|
||||
f.BoolVarP(&globalOptions.Quiet, "quiet", "q", false, "do not output comprehensive progress report")
|
||||
f.CountVarP(&globalOptions.Verbose, "verbose", "v", "be verbose (specify --verbose multiple times or level `n`)")
|
||||
|
||||
@@ -13,6 +13,7 @@ import (
|
||||
"github.com/restic/restic/internal/repository"
|
||||
"github.com/restic/restic/internal/restic"
|
||||
rtest "github.com/restic/restic/internal/test"
|
||||
"github.com/restic/restic/internal/ui/config"
|
||||
)
|
||||
|
||||
type dirEntry struct {
|
||||
@@ -209,7 +210,9 @@ func withTestEnvironment(t testing.TB) (env *testEnvironment, cleanup func()) {
|
||||
rtest.OK(t, os.MkdirAll(env.repo, 0700))
|
||||
|
||||
env.gopts = GlobalOptions{
|
||||
Repo: env.repo,
|
||||
Config: config.Config{
|
||||
Repo: env.repo,
|
||||
},
|
||||
Quiet: true,
|
||||
CacheDir: env.cache,
|
||||
ctx: context.Background(),
|
||||
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
"github.com/restic/restic/internal/debug"
|
||||
"github.com/restic/restic/internal/options"
|
||||
"github.com/restic/restic/internal/restic"
|
||||
"github.com/restic/restic/internal/ui/config"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
@@ -29,7 +30,22 @@ directories in an encrypted repository stored on different backends.
|
||||
SilenceUsage: true,
|
||||
DisableAutoGenTag: true,
|
||||
|
||||
PersistentPreRunE: func(c *cobra.Command, args []string) error {
|
||||
PersistentPreRunE: func(c *cobra.Command, args []string) (err error) {
|
||||
globalOptions.Config, err = config.Load("restic.conf")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = config.ApplyEnv(&globalOptions.Config, os.Environ())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = config.ApplyFlags(&globalOptions.Config, c.Flags())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// set verbosity, default is one
|
||||
globalOptions.verbosity = 1
|
||||
if globalOptions.Quiet && (globalOptions.Verbose > 1) {
|
||||
|
||||
Reference in New Issue
Block a user