diff --git a/main.go b/main.go index 8dd3fae..c4dd965 100644 --- a/main.go +++ b/main.go @@ -23,6 +23,7 @@ var ( flagDecoration string decoration Decoration verbose bool + chmods bool globalFlags = flag.NewFlagSet("", flag.ContinueOnError) globalConfig = &Config{} @@ -65,6 +66,8 @@ func init() { (or '-' to read the configuration from stdin).`) globalFlags.BoolVarP(&verbose, "verbose", "v", false, ` Verbose mode: print out more information about what reflex is doing.`) + globalFlags.BoolVarP(&chmods, "chmods", "m", false, ` + Includes watching chmod *only* events.`) globalFlags.BoolVarP(&flagSequential, "sequential", "e", false, ` Don't run multiple commands at the same time.`) globalFlags.StringVarP(&flagDecoration, "decoration", "d", "plain", ` @@ -75,7 +78,7 @@ func init() { func anyNonGlobalsRegistered() bool { any := false walkFn := func(f *flag.Flag) { - if !(f.Name == "config" || f.Name == "verbose" || f.Name == "sequential" || f.Name == "decoration") { + if !(f.Name == "config" || f.Name == "verbose" || f.Name == "sequential" || f.Name == "decoration"|| f.Name == "chmods") { any = any || true } } @@ -139,7 +142,7 @@ func main() { configs = []*Config{globalConfig} } else { if anyNonGlobalsRegistered() { - Fatalln("Cannot set other flags along with --config other than --sequential, --verbose, and --decoration.") + Fatalln("Cannot set other flags along with --config other than --sequential, --verbose, --decoration, and --chmods.") } var err error configs, err = ReadConfigs(flagConf) diff --git a/watch.go b/watch.go index ae908f2..bc1a328 100644 --- a/watch.go +++ b/watch.go @@ -30,7 +30,7 @@ func watch(root string, watcher *fsnotify.Watcher, names chan<- string, done cha continue } path := normalize(e.Name, stat.IsDir()) - if e.Op&chmodMask == 0 { + if !chmods && e.Op&chmodMask == 0 { continue } names <- path