diff --git a/cmd/restic/cmd_forget.go b/cmd/restic/cmd_forget.go index 8735676ac..8595fd13c 100644 --- a/cmd/restic/cmd_forget.go +++ b/cmd/restic/cmd_forget.go @@ -7,6 +7,7 @@ import ( "strings" "github.com/restic/restic/internal/restic" + "github.com/restic/restic/internal/errors" "github.com/spf13/cobra" ) @@ -95,10 +96,19 @@ func runForget(opts ForgetOptions, gopts GlobalOptions, args []string) error { var GroupByTag bool var GroupByHost bool var GroupByPath bool + var GroupOptionList []string - GroupByTag = strings.Contains( opts.GroupBy, "tag" ) - GroupByHost = strings.Contains( opts.GroupBy, "host" ) - GroupByPath = strings.Contains( opts.GroupBy, "path" ) + GroupOptionList = strings.Split( opts.GroupBy, "," ) + + for _, option := range GroupOptionList { + switch( option ) { + case "host": GroupByHost = true + case "paths": GroupByPath = true + case "tags": GroupByTag = true + case "": + default: return errors.Fatal( "unknown grouping option: '" + option + "'" ) + } + } ctx, cancel := context.WithCancel(gopts.ctx) defer cancel() diff --git a/doc/man/restic-forget.1 b/doc/man/restic-forget.1 index b9a1ff550..b7462eaf2 100644 --- a/doc/man/restic-forget.1 +++ b/doc/man/restic-forget.1 @@ -50,10 +50,6 @@ data after 'forget' was run successfully, see the 'prune' command. \fB\-\-keep\-tag\fP=[] keep snapshots with this \fB\fCtaglist\fR (can be specified multiple times) -.PP -\fB\-G\fP, \fB\-\-group\-by\-tags\fP[=false] - Group by host,paths,tags instead of just host,paths - .PP \fB\-\-host\fP="" only consider snapshots with the given \fB\fChost\fR @@ -70,6 +66,10 @@ data after 'forget' was run successfully, see the 'prune' command. \fB\-\-path\fP=[] only consider snapshots which include this (absolute) \fB\fCpath\fR (can be specified multiple times) +.PP +\fB\-g\fP, \fB\-\-group\-by\fP="host,paths" + string for grouping snapshots by host,paths,tags + .PP \fB\-n\fP, \fB\-\-dry\-run\fP[=false] do not delete anything, just print what would be done