From 47cefb2ab27513af98b025c90ea64cae5df7c129 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Wed, 6 Jun 2018 22:08:26 +0200 Subject: [PATCH] cmd/stfindignored: Add utility --- cmd/stfindignored/main.go | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 cmd/stfindignored/main.go 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 + }) +}