8000 GitHub - suyashb95/rorshach: A watchman for your directories. Rorshach allows you to listen to file system changes and run commands when these events occur.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
forked from sam09/rorshach

A watchman for your directories. Rorshach allows you to listen to file system changes and run commands when these events occur.

License

Notifications You must be signed in to change notification settings

suyashb95/rorshach

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License: MIT Build

Rorshach rorschach.gif

A watchman for your directories. Rorshach allows you to watch your directories for changes and trigger certain commands when these events occur.

Installlation

At the moment the only way to install is from crates.io (https://crates.io/crates/rorshach). Run cargo install rorshach to install it on a linux machine.

Usage

  • ./rorshach -f <dir> [-config <config_path>] [-t <seconds_to_wait_before_reload>]

The default config file lies at ~/.rorshach.conf

Config File

The config file has rules of the following form

EVENT  PATTERN   ACTION
...     ...       ...

EVENTS can be CREATE, DELETE RENAME or MODIFY. Each event is trigger when a file in the directory being watched is CREATED, DELETED, MODIFIED or RENAMED respectively. PATTERNS are patterns to match the files in a directory. Example *.cpp matches all the C++ files in a directory. ACTIONS are commands that can be executed when a EVENT occures

There are following environment variable available while executing an action, they are :- {FULLPATH} - Full path to the file, {BASEDIR} - Path to the directory that rorshach is watching {NEWFULLPATH} - New Path to the file, when a file is renamed else empty.

Examples

CREATE  *   echo " New file named ${FULLPATH} created"

The above will print a line of the form New file named <file-name> created every time a new file is created.

MODIFY  *.cpp   g++ ${FULLPATH} {BASEDIR}/test

Whenver a change is detected in a c++ file, rorshach will compile that file and create an executable named test in the base directory

TODO

  • Add more events to listen like Rename
  • Support execution of a chain of commands for a single event
  • Move Command Line passing to a different struct
  • Add a threadpool to execute each task once an event is spawned
  • Add a pub-sub mechanism for events
  • Add Tests?
  • Move parse_rules to an enclosing struct
  • Use log create for logging.
  • Provide better messages for errors.
  • Add a pub sub mechanism to listening to events and consuming them

About

A watchman for your directories. Rorshach allows you to listen to file system changes and run commands when these events occur.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 92.7%
  • Shell 6.4%
  • C++ 0.9%
0