diff --git a/cmd/stfindignored/main.go b/cmd/stfindignored/main.go new file mode 100644 index 00000000..9cdb88a7 --- /dev/null +++ b/cmd/stfindignored/main.go @@ -0,0 +1,41 @@ +// Copyright (C) 2014 The Syncthing Authors. +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this file, +// You can obtain one at https://mozilla.org/MPL/2.0/. + +// Commmand stfindignored lists ignored files under a given folder root. +package main + +import ( + "flag" + "fmt" + "os" + + "github.com/syncthing/syncthing/lib/fs" + "github.com/syncthing/syncthing/lib/ignore" +) + +func main() { + flag.Parse() + root := flag.Arg(0) + + vfs := fs.NewWalkFilesystem(fs.NewFilesystem(fs.FilesystemTypeBasic, root)) + + ign := ignore.New(vfs) + if err := ign.Load(".stignore"); err != nil { + fmt.Fprintf(os.Stderr, "Fatal: loading ignores: %v\n", err) + os.Exit(1) + } + + vfs.Walk(".", func(path string, info fs.FileInfo, err error) error { + if err != nil { + fmt.Fprintf(os.Stderr, "Warning: %s: %v\n", path, err) + return fs.SkipDir + } + if ign.Match(path).IsIgnored() { + fmt.Println(path) + } + return nil + }) +}