You can create an account, or login into your existing account using the `-login` flag followed by a valid email of yours.
For example, logging in with this email dotsync@mbaraa.com
dotsync -login dotsync@mbaraa.com
Email might be delivered to spam, since it contains a JWT which some email providers consider a malicious email.
Account deletion is possible using the CLI via the `-delete-user` flag with
no arguments, deleting your account will delete your files from the remote server,
but it won't affect your local files.
dotsync -delete-user
Account deletion will fail if you're not logged in, since there's no account to delete...
Add a file
To add a file to the sync list simply use the `-add` flag followed by the
file's path,
Make sure that you a read/write access to the file so that it can be written on and read when synchronizing
all files.
All files are stored with their absolute path, this is to avoid any conflicts like
~/.config/i3/config
and ~/.config/polybar/config, if both of them were added using `dotsync -add
config` they will be stored with their absolute.
Uploaded files have a 256KiB size limit, since it's more than enough for a dotfile, and if
it was larger Dotsync wouldn't be free...
For example, adding the file ~/.config/i3/config
dotsync -add ~/.config/i3/config
This will add all sub files and directories inside of ~/.config/i3, so
careful with the files' sizes!
Adding a file will fail if you're not logged in!
Add a directory
Adding a directory to the sync list is similar to adding a file using the `-add` flag followed by the directory's path.
The size limit of a directory is 50MiB with each file not larger than 256KiB.
For example, adding the directory ~/.config/i3
dotsync -add ~/.config/i3/
Adding a directory will fail if you're not logged in!
Remove a file
To remove a file from the sync list simply use the `-remove` flag followed by
the file's path (same as in the sync list),
Make sure that the file exists in the sync list.
For example, removing the file ~/.config/i3/config
dotsync -remove ~/.config/i3/config
Deleting a file will fail if you're not logged in!
Remove a Directory
Same as files, but with a directory name, where the server will do its magic!
List Synced Files
To list current synced files use the `-list` flag with no arguments.
dotsync -list
This will list all synced files in a chronological order, with their absolute path, so that
you know what is synced.
Listing synced files will fail if you're not logged in!
Upload Synced Files
To synchronize files from your computer to the remote server use the `-upload` flag with no arguments.
dotsync -upload
Uploading changed files follows the same rules that apply for uploading a single file,
that is each updated file should not be larger than 256KiB.
Uploading files will fail if you're not logged in!
Download Synced Files
To download currently synced files from the remote server to your computer use the `-download` flag with no arguments.
dotsync -download
When downloading synced files, if a file doesn't exist Dotsync will create a file with the
remote server's version, so this can be very handy with fresh installs, just saying 👀
Downloading synced files will fail if you're not logged in!
Building Guide
Building the CLI, you need to have Go installed!
A handy Makefile is included to do a proper build from source.
Just compile the project, this will take no time, given the fact that the Go compiler is
blaznigly fast.
make
Installing the compiled binary.
sudo make install
Compiling and installing the latest release from the remote repository.
sudo make install_remote
API Reference
For now just open the server's repo and check the controllers...
Contribution
Do it if you want, start with this section please!