Filesync-client is a project mainly written in JAVASCRIPT and PYTHON, it's free.
Client for filesync, a file-synchronization daemon built on nodejs
This is the client for filesync. Nothing is complete, except the install system is kinda working and watching files seems to work. Eventually this will be a full-featured client for filesync that has these features:
git clone git://github.com/beatgammit/filesync-client.git
cd filesync-client
npm install -g --unsafe-perm
Note, this needs to have real root permissions, hence the --unsafe-perm. If not, then the installer would not have permissions to automagically copy stuff where it needs to be (/lib, /etc, etc).
The install scripts are written in Python. The recommended version is Python 2.7.
The installer can take some command-line parameters. Currently supported parameters are:
--pam-module
- if present, compiles and "installs" the http pam module--pam-module-path path
- the path for the http pam module, including the name of the module. Defaults to ./http-auth.so--binroot path/to/dir
- where to install the server--pam-path path/to/pam/dir
- where to put the pam module--port 2000
- port of the serverAnything else may have undesired results. I use a couple parameters in development, and these should only be used with extreme care.
To install with parameters, do:
npm install [parameters]
So, to change the install port, do:
npm install --port 4567
Python Modules:
easy_install
or pip
Installed Applications: (in commands)
Installed Libraries: (in libs)
The required node modules are listed in the package.json.
filesync-client now supports npm start. Just do:
npm start filesync-client
after npm installing it and the server will be run in the background on whatever port is in the package.json file. This is only really useful for testing purposes right now and there's no way to actually kill the server besides kill PID
. It's just easier than doing cd node_modules/filesync-client/bin/ ; ./filesync
.
This method will be obsolete when it's running as a background process, but for now, it's quite convenient. Just take out the & in the package.json if you don't want it to run in the background (even more convenience).
The install process for systemd-based systems seems to work. It hasn't been tested for an actual global install, but it seems to work fine with local installs.
Watching files works. For testing, edit bin/filesync and emit an 'addWatches' event with an array of the files/directories to watch. To see output, add a listener on 'newWatch', 'fileModified', and 'fileRemoved'. The following use-cases have been tested:
Everything else.
Updating may work, but is untested. Upstart is not supported at all.