grive-daemon is born
BackgroundWith the recent announcement of Ubuntu One's death, it seems a lot of people are in a scramble to find a file sync alternative. I'm one of those people who really likes using Google Drive, but unfortunately there is still no official Linux client. For people using Linux, there are a couple of different sync clients they can use:
- grive: This is an open-source sync client which you must run manually through a terminal. Does the job, but is not user-friendly.
- Insync: This is a closed-source, paid sync client. If you don't want to spend money and/or prefer libre alternatives, this is not an option.
The Creation of grive-daemonI knew nothing about daemons. I knew nothing about how to make an actual file sync client. Thus, it only made sense that this was something I needed to attempt for myself.
I now have a terrible abomination to unleash upon the Linux world, and it's known as grive-daemon. It's written in C and based upon various online tutorials I've been looking at. It starts up and runs in the background on your machine, tracking a (user-made) ~/Google Drive folder for any local changes by using inotify and automatically syncing them by calling grive. When doing syncs, it will show you a notify-osd notification to let you know when the sync starts and stops, kind of like what Ubuntu One used to do.
It can't track changes in subdirectories yet. It is oblivious to changes on the actual Google Drive server until it is syncing for some other reason. You can't really interact with it once it starts until you manually kill it. It's useful and horrific at the same time.
Note: grive-daemon does not currently show the icon. I took it out until I could do it the right way on others' machines.
How You Too Can Experience the HorrorI made the code available under the GNU GPLv2 license (the same license grive itself uses) and the project is currently hosted at GitHub. I also just made a Launchpad page which should automatically pull in the code from that.
I made this to try and make my own life easier, and maybe it will lead to something else too. I'd personally love to see an Ubuntu Touch / Unity 8 converged app which provides a graphical frontend to this on both mobile and desktop. If you can improve what I hacked up, then by all means please do so and submit the changes to me; I'll be sure to give you credit if you do.
As I said before, I wasn't fully sure of what I was doing when I put this all together. Please try this out only if you are prepared to stop it if it misbehaves. Have fun!