Grooveshark Desktop was my take on a desktop client for Grooveshark. It featured:
- Bowtie-like miniController with fully customizable themes
- Media key support
- Growl notifications
- reduced pixel waste
- native Last.fm support
- miniController, minify, and fullscreen view modes
Grooveshark Desktop recieved over 50,000 downloads, and was even featured on Lifehacker.
Grooveshark updated their online app regularly, and the work required to maintain my desktop cleint became overwhelming. I dropped it in favor of spending more time on my studies.
- SSB App with its bundle-settings tweaked so that it looks for specially-named files
- one or more userscripts in ~/Library/Application Support/Fuild/SSBs
- A regular OS X .plist file in ~/Library/Preferences
I thought an OS X package would be the easiest (and most correct) way for my users to get these pieces into place. Unfortunately, the tools to directly create an OS X package that targets the user's home directory have faded away into obscurity. All the information on the package format I could find was years out of date. I could create packages that targeted /Applications and /Library just fine, but these required administrator passwords and were perceived as intrusive.
I eventually cobbled together a script using the remaining package utils from Xcode 3 from references for Xcode 2 tools and Panther. Took plenty of trial-and-error. The package tools happily build a complaint package to install all the Grooveshark Desktop components into the filesystem root. Then the script unpacks that package, manipulates the auto-generated manifest, flattens the package directories, and the re-compresses everything back into a .pkg file.
The source is still availible online at Github.
How barbaric. "Real" Mac apps are a single bundle that creates default configs on first run. Or they're installed into /Applicaitons by the App Store.