forked from TrueCloudLab/restic
group commands and make features/options visible
This commit is contained in:
parent
cb16add8c8
commit
e5a08e6808
28 changed files with 47 additions and 6 deletions
|
@ -55,6 +55,7 @@ Exit status is 12 if the password is incorrect.
|
||||||
backupOptions.Host = hostname
|
backupOptions.Host = hostname
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
term, cancel := setupTermstatus()
|
term, cancel := setupTermstatus()
|
||||||
|
|
|
@ -28,6 +28,7 @@ EXIT STATUS
|
||||||
Exit status is 0 if the command was successful.
|
Exit status is 0 if the command was successful.
|
||||||
Exit status is 1 if there was any error.
|
Exit status is 1 if there was any error.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(_ *cobra.Command, args []string) error {
|
RunE: func(_ *cobra.Command, args []string) error {
|
||||||
return runCache(cacheOptions, globalOptions, args)
|
return runCache(cacheOptions, globalOptions, args)
|
||||||
|
|
|
@ -29,6 +29,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runCat(cmd.Context(), globalOptions, args)
|
return runCat(cmd.Context(), globalOptions, args)
|
||||||
|
|
|
@ -41,6 +41,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
term, cancel := setupTermstatus()
|
term, cancel := setupTermstatus()
|
||||||
|
|
|
@ -40,6 +40,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runCopy(cmd.Context(), copyOptions, globalOptions, args)
|
return runCopy(cmd.Context(), copyOptions, globalOptions, args)
|
||||||
},
|
},
|
||||||
|
|
|
@ -29,8 +29,9 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var cmdDebug = &cobra.Command{
|
var cmdDebug = &cobra.Command{
|
||||||
Use: "debug",
|
Use: "debug",
|
||||||
Short: "Debug commands",
|
Short: "Debug commands",
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
}
|
}
|
||||||
|
|
||||||
var cmdDebugDump = &cobra.Command{
|
var cmdDebugDump = &cobra.Command{
|
||||||
|
|
|
@ -45,6 +45,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runDiff(cmd.Context(), diffOptions, globalOptions, args)
|
return runDiff(cmd.Context(), diffOptions, globalOptions, args)
|
||||||
|
|
|
@ -40,6 +40,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runDump(cmd.Context(), dumpOptions, globalOptions, args)
|
return runDump(cmd.Context(), dumpOptions, globalOptions, args)
|
||||||
|
|
|
@ -31,7 +31,7 @@ EXIT STATUS
|
||||||
Exit status is 0 if the command was successful.
|
Exit status is 0 if the command was successful.
|
||||||
Exit status is 1 if there was any error.
|
Exit status is 1 if there was any error.
|
||||||
`,
|
`,
|
||||||
Hidden: true,
|
GroupID: cmdGroupAdvanced,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(_ *cobra.Command, args []string) error {
|
RunE: func(_ *cobra.Command, args []string) error {
|
||||||
if len(args) != 0 {
|
if len(args) != 0 {
|
||||||
|
|
|
@ -39,6 +39,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runFind(cmd.Context(), findOptions, globalOptions, args)
|
return runFind(cmd.Context(), findOptions, globalOptions, args)
|
||||||
|
|
|
@ -41,6 +41,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
term, cancel := setupTermstatus()
|
term, cancel := setupTermstatus()
|
||||||
|
|
|
@ -26,6 +26,7 @@ EXIT STATUS
|
||||||
Exit status is 0 if the command was successful.
|
Exit status is 0 if the command was successful.
|
||||||
Exit status is 1 if there was any error.
|
Exit status is 1 if there was any error.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runInit(cmd.Context(), initOptions, globalOptions, args)
|
return runInit(cmd.Context(), initOptions, globalOptions, args)
|
||||||
|
|
|
@ -11,6 +11,7 @@ var cmdKey = &cobra.Command{
|
||||||
The "key" command allows you to set multiple access keys or passwords
|
The "key" command allows you to set multiple access keys or passwords
|
||||||
per repository.
|
per repository.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
|
|
@ -26,6 +26,7 @@ Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runList(cmd.Context(), globalOptions, args)
|
return runList(cmd.Context(), globalOptions, args)
|
||||||
},
|
},
|
||||||
|
|
|
@ -46,6 +46,7 @@ Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runLs(cmd.Context(), lsOptions, globalOptions, args)
|
return runLs(cmd.Context(), lsOptions, globalOptions, args)
|
||||||
},
|
},
|
||||||
|
|
|
@ -29,6 +29,7 @@ Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
term, cancel := setupTermstatus()
|
term, cancel := setupTermstatus()
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
|
@ -71,6 +71,7 @@ Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runMount(cmd.Context(), mountOptions, globalOptions, args)
|
return runMount(cmd.Context(), mountOptions, globalOptions, args)
|
||||||
},
|
},
|
||||||
|
|
|
@ -20,7 +20,7 @@ EXIT STATUS
|
||||||
Exit status is 0 if the command was successful.
|
Exit status is 0 if the command was successful.
|
||||||
Exit status is 1 if there was any error.
|
Exit status is 1 if there was any error.
|
||||||
`,
|
`,
|
||||||
Hidden: true,
|
GroupID: cmdGroupAdvanced,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
Run: func(_ *cobra.Command, _ []string) {
|
Run: func(_ *cobra.Command, _ []string) {
|
||||||
fmt.Printf("All Extended Options:\n")
|
fmt.Printf("All Extended Options:\n")
|
||||||
|
|
|
@ -34,6 +34,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, _ []string) error {
|
RunE: func(cmd *cobra.Command, _ []string) error {
|
||||||
term, cancel := setupTermstatus()
|
term, cancel := setupTermstatus()
|
||||||
|
|
|
@ -28,6 +28,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, _ []string) error {
|
RunE: func(cmd *cobra.Command, _ []string) error {
|
||||||
return runRecover(cmd.Context(), globalOptions)
|
return runRecover(cmd.Context(), globalOptions)
|
||||||
|
|
|
@ -5,8 +5,9 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var cmdRepair = &cobra.Command{
|
var cmdRepair = &cobra.Command{
|
||||||
Use: "repair",
|
Use: "repair",
|
||||||
Short: "Repair the repository",
|
Short: "Repair the repository",
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
|
|
@ -38,6 +38,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
term, cancel := setupTermstatus()
|
term, cancel := setupTermstatus()
|
||||||
|
|
|
@ -44,6 +44,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runRewrite(cmd.Context(), rewriteOptions, globalOptions, args)
|
return runRewrite(cmd.Context(), rewriteOptions, globalOptions, args)
|
||||||
|
|
|
@ -29,6 +29,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runSnapshots(cmd.Context(), snapshotOptions, globalOptions, args)
|
return runSnapshots(cmd.Context(), snapshotOptions, globalOptions, args)
|
||||||
|
|
|
@ -55,6 +55,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runStats(cmd.Context(), statsOptions, globalOptions, args)
|
return runStats(cmd.Context(), statsOptions, globalOptions, args)
|
||||||
|
|
|
@ -31,6 +31,7 @@ Exit status is 10 if the repository does not exist.
|
||||||
Exit status is 11 if the repository is already locked.
|
Exit status is 11 if the repository is already locked.
|
||||||
Exit status is 12 if the password is incorrect.
|
Exit status is 12 if the password is incorrect.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runTag(cmd.Context(), tagOptions, globalOptions, args)
|
return runTag(cmd.Context(), tagOptions, globalOptions, args)
|
||||||
|
|
|
@ -19,6 +19,7 @@ EXIT STATUS
|
||||||
Exit status is 0 if the command was successful.
|
Exit status is 0 if the command was successful.
|
||||||
Exit status is 1 if there was any error.
|
Exit status is 1 if there was any error.
|
||||||
`,
|
`,
|
||||||
|
GroupID: cmdGroupDefault,
|
||||||
DisableAutoGenTag: true,
|
DisableAutoGenTag: true,
|
||||||
RunE: func(cmd *cobra.Command, _ []string) error {
|
RunE: func(cmd *cobra.Command, _ []string) error {
|
||||||
return runUnlock(cmd.Context(), unlockOptions, globalOptions)
|
return runUnlock(cmd.Context(), unlockOptions, globalOptions)
|
||||||
|
|
|
@ -83,6 +83,22 @@ The full documentation can be found at https://restic.readthedocs.io/ .
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var cmdGroupDefault = "default"
|
||||||
|
var cmdGroupAdvanced = "advanced"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
cmdRoot.AddGroup(
|
||||||
|
&cobra.Group{
|
||||||
|
ID: cmdGroupDefault,
|
||||||
|
Title: "Available Commands:",
|
||||||
|
},
|
||||||
|
&cobra.Group{
|
||||||
|
ID: cmdGroupAdvanced,
|
||||||
|
Title: "Advanced Options:",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
// Distinguish commands that need the password from those that work without,
|
// Distinguish commands that need the password from those that work without,
|
||||||
// so we don't run $RESTIC_PASSWORD_COMMAND for no reason (it might prompt the
|
// so we don't run $RESTIC_PASSWORD_COMMAND for no reason (it might prompt the
|
||||||
// user for authentication).
|
// user for authentication).
|
||||||
|
|
Loading…
Reference in a new issue