diff --git a/backup/cmd/check.go b/backup/cmd/check.go new file mode 100644 index 0000000..b4c9265 --- /dev/null +++ b/backup/cmd/check.go @@ -0,0 +1,29 @@ +package cmd + +import ( + "fmt" + + "backup-rsync/backup/internal" + + "github.com/spf13/afero" + "github.com/spf13/cobra" +) + +var AppFs = afero.NewOsFs() + +var checkCmd = &cobra.Command{ + Use: "check-coverage", + Short: "Check path coverage", + Run: func(cmd *cobra.Command, args []string) { + cfg := loadResolvedConfig(configPath) + uncoveredPaths := internal.ListUncoveredPaths(AppFs, cfg) + fmt.Println("Uncovered paths:") + for _, path := range uncoveredPaths { + fmt.Println(path) + } + }, +} + +func init() { + RootCmd.AddCommand(checkCmd) +} diff --git a/backup/internal/check.go b/backup/internal/check.go index cc3e7f8..29f8160 100644 --- a/backup/internal/check.go +++ b/backup/internal/check.go @@ -53,7 +53,7 @@ func isCovered(path string, jobs []Job) bool { return false } -func listUncoveredPaths(fs afero.Fs, cfg Config) []string { +func ListUncoveredPaths(fs afero.Fs, cfg Config) []string { var result []string seen := make(map[string]bool) diff --git a/backup/internal/check_test.go b/backup/internal/check_test.go index 8abb4ea..26d7137 100644 --- a/backup/internal/check_test.go +++ b/backup/internal/check_test.go @@ -83,7 +83,7 @@ func runListUncoveredPathsTest(t *testing.T, fakeFS map[string][]string, cfg Con } // Call the function - uncoveredPaths := listUncoveredPaths(fs, cfg) + uncoveredPaths := ListUncoveredPaths(fs, cfg) // Assertions sort.Strings(uncoveredPaths)