14 comments

[ 2.3 ms ] story [ 44.8 ms ] thread
That is something I was dreaming of!!!

I run to understand more on github. Thanks for building it

I don't know if you are the author, but why Haskell? Not to say it's a bad choice, I am just curious.
I enjoy programming in Haskell, and this was an opportunity to practice. I initially wrote it in Objective-C++, but I found a good trie implementation in Haskell. Eventually, I want to make the entire project Haskell.
The title should probably reflect that this is mac only?
That seems unnecessary. The entire page is only 126 words and it's clearly stated that only OSX is supported.
Anybody explain how this works?

Looks like it injects the Dropbox executable's lstat and open syscalls

That is exactly how it works. lstat and open are hooked so that they mark the file as non-existant if it is in the .dbignore file.
How complicated would it be to update this for Win/Linux?
I haven't looked at the code but my guess is it wouldn't be that hard. Implementing a quick filesystem on top of FUSE and pointing Dropbox to it.
It shouldn't be too hard with linux. LD_PRELOAD should be able to accomplish the same thing as DYLD_INSERT_LIBRARIES. Windows will probably be a little harder as lstat does not exist.
What happens if another client adds an ignored file and the current one tries to sync? I guess Dropbox will try to create it and fail repeatedly?

Neat trick!

Can't tell you how awesome this is (both the idea and implementation). I've actually had to turn off Dropbox recently since things like node_modules just kills my computer when Dropbox is indexing.