summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@helsinki.at>2009-11-24 16:53:02 +0000
committerChristian Pointner <equinox@helsinki.at>2009-11-24 16:53:02 +0000
commit57494f21455e8f374de39524e6d77b8d8356cbc3 (patch)
tree6382f5a2a905f8196df11176ac3064aaa942bca6
parentadded file size parameter to script execution (diff)
added manpage
-rw-r--r--Makefile8
-rw-r--r--doc/Makefile36
-rw-r--r--doc/rhdropbox.8.txt145
3 files changed, 188 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index a7becfc..0bcac73 100644
--- a/Makefile
+++ b/Makefile
@@ -58,7 +58,7 @@ $(EXECUTABLE): $(OBJ)
$(CC) $(CFLAGS) -c $<
-distclean: clean
+distclean: cleanall
find . -name *.o -exec rm -f {} \;
find . -name "*.\~*" -exec rm -rf {} \;
rm -f include.mk
@@ -68,3 +68,9 @@ clean:
rm -f *.d
rm -f *.d.*
rm -f $(EXECUTABLE)
+
+cleanall: clean
+ $(MAKE) --directory="doc/" clean
+
+manpage:
+ $(MAKE) --directory="doc/" manpage
diff --git a/doc/Makefile b/doc/Makefile
new file mode 100644
index 0000000..e150ef2
--- /dev/null
+++ b/doc/Makefile
@@ -0,0 +1,36 @@
+##
+## rhdropbox
+##
+## Copyright (C) 2009 Christian Pointner <equinox@helsinki.at>
+##
+## This file is part of rhdropbox.
+##
+## rhdropbox is free software: you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## any later version.
+##
+## rhdropbox is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with rhdropbox. If not, see <http://www.gnu.org/licenses/>.
+##
+
+.PHONY: clean
+
+all: manpage
+
+rhdropbox.8: rhdropbox.8.txt
+ a2x -f manpage $<
+ @ sed -i -e 's/\[FIXME: source\]/rhdropbox/' $@
+ @ sed -i -e 's/\[FIXME: manual\]/rhdropbox user manual/' $@
+ @ sed -i -e 's/^rhdropbox$$/\\fBrhdropbox\\fR/' $@
+ @ sed -i -e 's/^ \[ \([^ ]*\)/ [ \\fB\1\\fR/' $@
+
+manpage: rhdropbox.8
+
+clean:
+ rm -f rhdropbox.8 rhdropbox.8.xml
diff --git a/doc/rhdropbox.8.txt b/doc/rhdropbox.8.txt
new file mode 100644
index 0000000..207f177
--- /dev/null
+++ b/doc/rhdropbox.8.txt
@@ -0,0 +1,145 @@
+rhdropbox(8)
+============
+
+NAME
+----
+
+rhdropbox - radio helsinki dropbox daemon
+
+
+SYNOPSIS
+--------
+
+....
+rhdropbox
+ [ -h|--help ]
+ [ -D|--nodaemonize ]
+ [ -u|--username <username> ]
+ [ -g|--groupname <groupname> ]
+ [ -C|--chroot <path> ]
+ [ -P|--write-pid <filename> ]
+ [ -L|--log <target>:<level>[,<param1>[,<param2>[..]]] ]
+ [ -s|--command-sock <unix sock> ]
+ [ -x|--script <script> ]
+....
+
+
+DESCRIPTION
+-----------
+
+*rhdropbox* is a small daemon which can be used to watch one or more
+directories for new files. When a new file is detected a external program.
+Additional directories can be added to the damons watch list using a simple
+unix socket based command interface.
+
+
+OPTIONS
+-------
+
+The following options can be passed to the *rhdropbox* daemon:
+
+*-D, --nodaemonize*::
+ This option instructs *rhdropbox* to run in foreground
+ instead of becoming a daemon which is the default.
+
+*-u, --username <username>*::
+ run as this user. If no group is specified (*-g*) the default group of
+ the user is used. The default is to not drop privileges.
+
+*-g, --groupname <groupname>*::
+ run as this group. If no username is specified (*-u*) this gets ignored.
+ The default is to not drop privileges.
+
+*-C, --chroot <path>*::
+ Instruct *rhdropbox* to run in a chroot jail. The default is
+ to not run in chroot.
+
+*-P, --write-pid <filename>*::
+ Instruct *rhdropbox* to write it's pid to this file. The default is
+ to not create a pid file.
+
+*-L, --log <target>:<level>[,<param1>[,<param2>[..]]]*::
+ add log target to logging system. This can be invoked several times
+ in order to log to different targets at the same time. Every target
+ hast its own log level which is a number between 0 and 5. Where 0 means
+ disabling log and 5 means debug messages are enabled. +
+ The file target can be used more the once with different levels.
+ If no target is provided at the command line a single target with the
+ config *syslog:3,uanytun,daemon* is added. +
+ The following targets are supported:
+
+ *syslog*;; log to syslog daemon, parameters <level>[,<logname>[,<facility>]]
+ *file*;; log to file, parameters <level>[,<path>]
+ *stdout*;; log to standard output, parameters <level>
+ *stderr*;; log to standard error, parameters <level>
+
+*-s|--command-sock <unix sock>*::
+ *rhdropbox* will listen on this unix socket for incoming commands. See next
+ chapter for details. The default is /var/run/rhdropbox/cmd.sock
+
+*-x|--script <script>*::
+ The script which should be called when a new file is found. The following parameter
+ are passed to the scipt:
+
+ *<path>*;; the path to the folder containing the new file
+ *<filename>*;; the name of the new file relative to <path>
+ *<filesize>*;; the size of the file right after the event was received, this can be
+ used to determine wheter the file is complete. The script should
+ consider a file to be complete when it size doesn't change 3-5seconds
+ after the event got received.
+
+
+COMMAND INTERFACE
+-----------------
+
+*rhdropbox* is listening for incoming commands at the unix socket speciefied by the
+-s|--command-sock parameter. You can connect to this socket for example using
+socat:
+
+ # socat UNIX-CONNECT:/var/run/rhdropbox/rhdropbox.sock STDIO
+
+All commands have to end with '\n'. The following commands are supported:
+
+*add <path>*::
+ Add a path to the list of directories to be watched. If the command succeds nothing
+ is returned. In case of an error a string of the form "Error: <reason>\n" is returned.
+
+*remove <path>*::
+ Remove the path from the list of directories. If the command succeds nothing
+ is returned. In case of an error a string of the form "Error: <reason>\n" is returned.
+
+*status*::
+ Returns the complete list of all directories from the wath list.
+
+*listen [request|status|none]*::
+ Add the client to the status and or request listeners. When no parameter is passed to
+ this command the client listens to all messages.
+ A status listener gets a list of all directories whenever somebody else adds or removes
+ a path to the watch list. It also receives the list when somebody sends a status command
+ to the daemon.
+ A request listener also receives add and remove requests by other clients connected to
+ the command interface.
+
+*log <text>*::
+ Print <text> to the logtargets of the daemon.
+
+
+BUGS
+----
+Most likely there are some bugs in *rhdropbox*. If you find a bug, please let
+the developers know at equinox@helsinki.at. Of course, patches are preferred.
+
+
+AUTHORS
+-------
+
+Christian Pointner <equinox@heslinki.at>
+
+
+COPYING
+-------
+
+Copyright \(C) 2009 Christian Pointner. This program is free
+software: you can redistribute it and/or modify it under the terms
+of the GNU General Public License as published by the Free Software
+Foundation, either version 3 of the License, or any later version.