Alright, here is the initial version. It's definitely not feature complete.
I've also packaged the paperCONS theme, however it was too big to attach.
http://www.timmy.org/paperCONS.ipb.zip
Ok. So unzip the installipb.zip file and throw installipb.pl into your phonedmg directory.
Now, you can either create a directory called iPhoneBundles and throw the Bach.ipb.zip and paperCONS.ipb.zip files into said directory, or throw the zip files into your phonedmg directory. Uncompress the zip files.
Now. Since it's late, and I'm tired, I'll just paste examples of how to use it and what it'll output currently (it's going to change).
twisted:~/phonedmg tim$ ./installipb.pl Bach
installipb.pl Version: 0.1
Created By: Tim Blade <timothy.blade@gmail.com>
iPhoneInterface: /Users/tim/phonedmg/iPhoneInterface
Bundles Directory: /Users/tim/phonedmg/iPhoneBundles
Target Bundle: Bach.ipb
Target Variant: Default
iPhone OS Version: 1.0
Target Directory: /Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/Calculator.app - /Applications/Calculator.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/Maps.app - /Applications/Maps.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/MobileCal.app - /Applications/MobileCal.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/MobileMail.app - /Applications/MobileMail.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/MobileMusicPlayer.app - /Applications/MobileMusicPlayer.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/MobileNotes.app - /Applications/MobileNotes.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/MobilePhone.app - /Applications/MobilePhone.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/MobileSafari.app - /Applications/MobileSafari.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/MobileSlideShow.app - /Applications/MobileSlideShow.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/MobileSlideShow.app - /Applications/MobileSlideShow.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/MobileSMS.app - /Applications/MobileSMS.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/MobileTimer.app - /Applications/MobileTimer.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/Preferences.app - /Applications/Preferences.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/Stocks.app - /Applications/Stocks.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/Weather.app - /Applications/Weather.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/Applications/YouTube.app - /Applications/YouTube.app
/Users/tim/phonedmg/iPhoneBundles/Bach.ipb/1.0/Default/System/Library/CoreServices/SpringBoard.app - /System/Library/CoreServices/SpringBoard.app
twisted:~/phonedmg tim$
That's me installing the Bach theme. You can either just say "Bach" as the argument or "Bach.ipb" My code doesn't care.
Here's my example for installing the Transparent Background variant for paperCONS
twisted:~/phonedmg tim$ ./installipb.pl -a "Transparent Background" paperCONS
installipb.pl Version: 0.1
Created By: Tim Blade <timothy.blade@gmail.com>
iPhoneInterface: /Users/tim/phonedmg/iPhoneInterface
Bundles Directory: /Users/tim/phonedmg/iPhoneBundles
Target Bundle: paperCONS.ipb
Target Variant: Transparent Background
iPhone OS Version: 1.0
Target Directory: /Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/Calculator.app - /Applications/Calculator.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/Maps.app - /Applications/Maps.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/MobileCal.app - /Applications/MobileCal.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/MobileMail.app - /Applications/MobileMail.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/MobileMusicPlayer.app - /Applications/MobileMusicPlayer.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/MobileNotes.app - /Applications/MobileNotes.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/MobilePhone.app - /Applications/MobilePhone.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/MobileSafari.app - /Applications/MobileSafari.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/MobileSlideShow.app - /Applications/MobileSlideShow.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/MobileSlideShow.app - /Applications/MobileSlideShow.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/MobileSMS.app - /Applications/MobileSMS.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/MobileTimer.app - /Applications/MobileTimer.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/Preferences.app - /Applications/Preferences.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/Stocks.app - /Applications/Stocks.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/Weather.app - /Applications/Weather.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/Applications/YouTube.app - /Applications/YouTube.app
/Users/tim/phonedmg/iPhoneBundles/paperCONS.ipb/1.0/Transparent Background/System/Library/CoreServices/SpringBoard.app - /System/Library/CoreServices/SpringBoard.app
twisted:~/phonedmg tim$
So, currently the code is written specifically for UNIX. I'm using forward slashes, and not backslashes. I have absolutely no clue as to how PERL handles forward slashes under Windows. I don't specifically refer to any directories, everything is relative, so theoretically if ActivePerl automatically converts my forward slashes to backslashes, everything will work.
Within the next few days I'll upload an updated more feature complete version that has more documentation.
Oh yeah, after you install a theme, restart your iPhone.
--Tim
P.S. Daft Punk live was on eof the best concerts I've been too. Pure pyramid sex.