Patch
The following is a patch for adding symlink support to an iPod shuffle database rebuilding script.
225a226,230 > try: > if (os.path.islink('.'+filename)): > filename=os.path.normpath(os.path.join(os.path.split(filename)[0],os.readlink('.'+filename))) > except OSError: > pass 269,270c274,275 < if os.path.islink(fullname): < return None --- > #if os.path.islink(fullname): > # return None
I'm going to assume that you're technically inclined enough to know what I'm talking about here. Apply the above patch to the latest version of Shuffle-db on the rebuild-db.py file. Now, make sure that you can use the iPod as a disk (clicking the "Enable Disk Use" checkbox in iTunes). This will make the iPod mount on the desktop, so you have access to the actual files on the iPod. Follow the documentation for installation of the python script. This patched script has support for symlinks - so you should be able to make a relative link to a file by doing something like
$ pwd /Volumes/HIREN_S IPO $ ls Albums/ iPod_Control/ rebuild_db.py Shuffle/ rebuild_db.log.txt rebuild_db.rules $ cd Shuffle/ $ ls ../Albums/ On and On Sevens Travels $ ln -s ../Albums/Sevens\ Travels/19-Always_Come_Back_Home_To_You.mp3
I've only tested this with a single level of symlinking.
Thoughts
After this, I need to add folder actions to the Shuffle and Albums directories to trigger a rebuild of the database when I add a file to the directories. iTunes doesn't try rebuilding the database past the initial detection of the iPod, so it's ok to leave iTunes running, as long as the last thing that happens to the iPod before unmounting is that it has had it's database rebuilt. Once the folder actions go in - this whole process should be transparent.