Drafts will append text to a file in Dropbox also. The problem is that it always puts it into
/Apps/Drafts/Journal.txt
and that appears to be a hardcoded path.I don’t want two sets of text clippings, and I don’t want one of them outside of my nvALT directory. This sent me on a path to see if I could somehow move all the text into my scratch file in nvALT. I’m a rotten coder but I managed to hack something up that does the job. It’s in two parts. The first part is a bash script that checks to see if the
/Apps/Drafts/
directory content has changed and then checks if the Journals.txt file has changed. If it has it appends the contents to scratch file.The second part for Mac users is a plist that loads the script and keeps it chugging away.
As always, use these scripts at your own risk and I’d love to hear all the ways that you find to make them smarter, better, more elegant and more robust. I told you I’m a crap coder.
#!/bin/bash
#This script is designed to combine two scratch files that I use for holding snippets of text.
#They are both in ~/Documents/Dropbox. The first is in the /nvALT directory and is called ScratchX.txt I use it for clipping text to on Mac
#The second is used by Drafts on iOS and is in the /Apps/Drafts directory and is called Journal.txt
#I create a dummy JournalB.txt and use diff to check whether it and Journal.txt remain the same. If they differ we copy the diff to ScratchX.txt
#It requires a change in the /Apps/Drafts directory to trigger anything further.
#Create a directory listing file
touch ~/tmp/dirb.tmp
while true; do
#List the directory and put it into dira.tmp
ls -l /Users/criticalold/Documents/Dropbox/Apps/Drafts > /tmp/dira.tmp
#Check whether it differs from the last directory listing and tell us if it does
diff /tmp/dira.tmp /tmp/dirb.tmp || echo
#Then do a diff on the files and send the diff to grep to get rid of some numbers that diff creates then append to ScratchX.txt.
diff /Users/criticalold/Documents/Dropbox/Apps/Drafts/Journal.txt /Users/criticalold/Documents/Dropbox/Apps/Drafts/JournalB.txt | grep '^<' >> /Users/criticalold/Documents/Dropbox/nvALT/ScratchX.txt
#Do our housekeeping for next time by making the *b files the same as the *a or the Journal file so that we do a valid comparison.
cp /Users/criticalold/Documents/Dropbox/Apps/Drafts/Journal.txt /Users/criticalold/Documents/Dropbox/Apps/Drafts/JournalB.txt
cp /tmp/dira.tmp /tmp/dirb.tmp
#Wait for 25 seconds before checking again.
sleep 25
done
Now for the plist<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.critical.dropbox</string>
<key>Program</key>
<array>
<string>/Users/criticalold/Applications/Utilities/Terminal.app</string>
</array>
<key>ProgramArguments</key>
<array>
<string>/Users/criticalold/Documents/ShellScripts/checkdirectory.sh</string>
</array>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
One way I got around this problem was just to move "Journal.txt" into my NV directory, and then move the hidden ".dropbox" file from Dropbox/Apps/Drafts/ into the same NV directory. Now Drafts still appends text to Journal.txt, but it knows that it's in my NV directory.
ReplyDeleteThanks CM, that's a really elegant way of doing it...if only I'd know that yesterday morning I'd have saved myself the grief of getting this script to work and putting my crappy coding on show ;)
DeleteI had tried to get symlinks to do the job but it didn't work satisfactorily. Your approach is much nicer.
Thanks!!
Just a quick note if you do decide to use this script: The sleep interval is quite important to reliable functioning. If you make it too short and you are modifying Journal.txt repeatedly and rapidly then it tends to trip over itself. If this happens you will see the odd duplicate entry. Just lengthen the sleep time slightly.
ReplyDeleteadidas flux
ReplyDeleteyeezy shoes
jordan shoes
michael kors
yeezy 500 blush
nmd
nike cortez women
goyard wallet
nike air max 270
kyrie 3