Last active
February 20, 2019 11:55
-
-
Save p120ph37/8470353 to your computer and use it in GitHub Desktop.
This is the launchd.plist file that keeps my Dropbox and Google Drive folders synchronized.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
<plist version="1.0"> | |
<dict> | |
<key>Label</key><string>local.gdrive-dropbox-sync</string> | |
<key>ProgramArguments</key> | |
<array> | |
<string>/bin/sh</string><string>-c</string> | |
<string>/usr/local/bin/unison \ | |
-times \ | |
-prefer=newer \ | |
-owner \ | |
-group \ | |
-ignorelocks \ | |
-terse \ | |
-batch \ | |
-ignore='Path .dropbox.cache' \ | |
-ignore='Path .DS_Store' \ | |
-ignore='Path Icon?' \ | |
~/Google\ Drive/ \ | |
~/Dropbox/</string> | |
</array> | |
<key>RunAtLoad</key><true/> | |
<key>WatchPaths</key> | |
<array> | |
<string>~/Google Drive</string> | |
<string>~/Dropbox</string> | |
</array> | |
<!--<key>StartInterval</key><integer>60</integer>--> | |
<key>ExitTimeOut</key><integer>0</integer> | |
<key>ThrottleInterval</key><integer>1</integer> | |
</dict> | |
</plist> |
As of OS X Yosemite (v10.10), the EnableGlobbing
key is no longer supported. This means that the ~/Google Drive/
and ~/Dropbox
arguments to unison will not be expanded to the user home directory (though the arguments to WatchPaths
still seem to handle ~
correctly...)
Consequently, I have updated the plist to run unison via /bin/sh
so as to allow home-directory expansion.
It should now once again function under the latest OSX version.
Thank you! Saved me alot of confusion getting sync to work with unison. Exactly what I was looking for.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
You need the unison command-line tool installed first - get it via home-brew (
brew install unison
). Then copy this file to~/Library/LaunchAgents/
(it should be owned by your user, notroot
, and permissions should be644
) and runlaunchctl load -w ~/Library/LaunchAgents/gdrive-dropbox-sync.plist
(withoutsudo
) to start it up. It will monitor~/Google Drive
and~/Dropbox
for changes and propagate them. Logs will appear in~/unison.log