Difference between revisions of "Fsniper"

From ArchWiki
Jump to navigation Jump to search
(update Pkg/AUR templates (https://github.com/lahwaacz/wiki-scripts/blob/master/update-package-templates.py))
(update Pkg/AUR templates (https://github.com/lahwaacz/wiki-scripts/blob/master/update-package-templates.py))
Line 8: Line 8:
== Installation ==
== Installation ==
{{AUR|fsniper}}{{Broken package link|{{aur-mirror|fsniper}}}} is available from the [[AUR]].
{{AUR|fsniper}} is available from the [[AUR]].
== Configuration ==
== Configuration ==

Revision as of 21:27, 9 September 2015

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: initscripts has been superseded by systemd (Discuss in Talk:Fsniper#)

Merge-arrows-2.pngThis article or section is a candidate for merging with List of applications.Merge-arrows-2.png

Notes: no content of note (Discuss in Talk:Fsniper#)

Fsniper is a directory monitor that can be used to execute predefined actions on files that enter the monitored directory. This can, for example, be used to monitor your downloads folder and sort downloaded files automatically into your file system.

Unlike cron jobs or bash scripts, fsniper uses inotify to monitor file changes. This enable it to react immediately and efficiently to changes of the file system.


fsniperAUR is available from the AUR.


Fsniper comes with a self-explanatory example.conf found in /usr/share/sniper/ that can be copied to ~/.config/fsniper/config for modification and personalisation.

 watch {
   # watch the ~/drop directory for new files
   ~/drop {
       # matches any mimetype beginning with image/
       image/* {
           # %% is replaced with the filename of the new file
           handler = echo found an image: %%
       # matches any file ending with .extension
       *.extension {
           # the filename is added to the end of the handler line if %% is not present
           handler = echo glob handler 1: 
           # the second handler will be run if the first exits with a return code of 1
           handler = echo glob handler 2: %%
       # run handlers on files that match this regex
       /.*regex.*/ {
           handler = echo regex handler
       # generic handler to catch files that nothing else did
       * {
           handler = mv %% ~/downloads/

Once configured, fsniper can be started by typing

 $ fsniper --daemon


Fsniper can also be started automatically at boot time as an rc.d daemon by placing the following script as /etc/rc.d/fsniper:

(Replace <your-user-name> with your user name(s))

 . /etc/rc.conf
 . /etc/rc.d/functions
 USERS=( '<your-user-name>' )
 for USER in ${USERS[@]}
 	PID=$(pidof -o %PPID /usr/bin/fsniper)
 	case "$1" in
 		  stat_busy "Starting $daemon_name"
 		  [ -z "$PID" ] && su -c "/usr/bin/fsniper --daemon" $USER
 		  if [ $? -gt 0 ]; then
 			  add_daemon fsniper
 		  stat_busy "Stopping $daemon_name"
 		  [ ! -z "$PID" ] && kill $PID > /dev/null
 		  if [ $? -gt 0 ]; then
 			  rm_daemon fsniper
 		  $0 stop
 		  sleep 1
 		  $0 start
   echo "usage: $0 {start|stop|restart}"
 exit 0

The daemon can then be started by typing

 # rc.d start fsniper

or by placing fsniper in the daemons section of your /etc/rc.conf.