From fb74de63602c9556c114260b54cef3d7890ebaa9 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Wed, 18 Jul 2018 21:39:07 +0200 Subject: [PATCH] Return an error when exclude files cannot be read --- cmd/restic/cmd_backup.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/cmd/restic/cmd_backup.go b/cmd/restic/cmd_backup.go index 11f1514e8..a1b5981ea 100644 --- a/cmd/restic/cmd_backup.go +++ b/cmd/restic/cmd_backup.go @@ -210,7 +210,11 @@ func collectRejectFuncs(opts BackupOptions, repo *repository.Repository, targets // add patterns from file if len(opts.ExcludeFiles) > 0 { - opts.Excludes = append(opts.Excludes, readExcludePatternsFromFiles(opts.ExcludeFiles)...) + excludes, err := readExcludePatternsFromFiles(opts.ExcludeFiles) + if err != nil { + return nil, err + } + opts.Excludes = append(opts.Excludes, excludes...) } if len(opts.Excludes) > 0 { @@ -238,7 +242,7 @@ func collectRejectFuncs(opts BackupOptions, repo *repository.Repository, targets // and comment lines are ignored. For each remaining pattern, environment // variables are resolved. For adding a literal dollar sign ($), write $$ to // the file. -func readExcludePatternsFromFiles(excludeFiles []string) []string { +func readExcludePatternsFromFiles(excludeFiles []string) ([]string, error) { getenvOrDollar := func(s string) string { if s == "$" { return "$" @@ -274,11 +278,10 @@ func readExcludePatternsFromFiles(excludeFiles []string) []string { return scanner.Err() }() if err != nil { - Warnf("error reading exclude patterns: %v:", err) - return nil + return nil, err } } - return excludes + return excludes, nil } // collectTargets returns a list of target files/dirs from several sources.