[Jahshaka-cvs] jah/installer/osx set_plist_value.py, NONE, 1.1 create_agent, 1.1, 1.2 create_app, 1
Status: Beta
Brought to you by:
jahshaka
From: John B. <ok_...@us...> - 2006-12-19 15:57:55
|
Update of /cvsroot/jahshaka/jah/installer/osx In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv22299/installer/osx Modified Files: create_agent create_app create_dmg Added Files: set_plist_value.py Log Message: Improved Info.plist support Index: create_app =================================================================== RCS file: /cvsroot/jahshaka/jah/installer/osx/create_app,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- create_app 18 Dec 2006 09:47:29 -0000 1.1 +++ create_app 19 Dec 2006 15:57:49 -0000 1.2 @@ -30,6 +30,8 @@ lib_prefix=${6%/} qt_prefix=${7%/} +app_name=${py_script%.py} + olib_lib_path="$olib_prefix/lib/openlibraries-$olib_ver" if [ ! -e $olib_lib_path ] ; then echo "Error: Can't find olib libraries at: $olib_lib_path" @@ -62,9 +64,9 @@ rm -rf "$py_script_root/build" fi -if [ -e "$py_script_root/dist/${py_script%.py}.app" ] ; then +if [ -e "$py_script_root/dist/$app_name.app" ] ; then echo "Cleaning out old app bundle" - rm -rf "$py_script_root/dist/${py_script%.py}.app" + rm -rf "$py_script_root/dist/$app_name.app" fi # Create the app bundle @@ -73,7 +75,7 @@ # We have to exclude all our own python modules because py2app can't handle them python setup.py py2app $prefer_ppc --excludes openpluginlib,openmedialib,openassetlib,openimagelib,jahwidgets -bundle="$py_script_root/dist/${py_script%.py}.app" +bundle="$py_script_root/dist/$app_name.app" if [ ! -e "$bundle" ] ; then echo "Error: Failed to create an application bundle at: $bundle" @@ -184,18 +186,22 @@ dep_dylibs="$dep_dylibs "`$fixup_install_names_cmd $bundle_modules` # icon -if [ -e "$py_script_root/${py_script%.py}.png" ] ; then - cp "$py_script_root/${py_script%.py}.png" "$bundle/Contents/Resources" +if [ -e "$py_script_root/$app_name.png" ] ; then + cp "$py_script_root/$app_name.png" "$bundle/Contents/Resources" fi # Info.plist -cat "$bundle/Contents/Info.plist" | sed "s/org.pythonmac.unspecified/org.jahshaka/" > "$bundle/Contents/tmp.plist" -mv "$bundle/Contents/tmp.plist" "$bundle/Contents/Info.plist" +python "$script_root/set_plist_value.py" "$bundle/Contents/Info.plist" "CFBundleIdentifier" "org.jahshaka.$app_name" +python "$script_root/set_plist_value.py" "$bundle/Contents/Info.plist" "CFBundleIconFile" "$app_name.png" + +if [ "$prefer_ppc" != "" ] ; then + python "$script_root/set_plist_value.py" "$bundle/Contents/Info.plist" "LSPrefersPPC" "true" +fi echo "$dep_dylibs" | sort | uniq > build_app.log echo -echo "${py_script%.py}.app created successfully" +echo "$app_name.app created successfully" echo echo "Dependicies written to build_app.log" echo Index: create_dmg =================================================================== RCS file: /cvsroot/jahshaka/jah/installer/osx/create_dmg,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- create_dmg 18 Dec 2006 09:47:29 -0000 1.1 +++ create_dmg 19 Dec 2006 15:57:49 -0000 1.2 @@ -9,4 +9,8 @@ dmg="$2" vol="$3" +if [ -e "$dmg" ] ; then + rm "$dmg" +fi + hdiutil create -srcdir "$srcdir" -volname "$vol" -ov "$dmg" --- NEW FILE: set_plist_value.py --- #!/usr/bin/env python import sys import plistlib if len(sys.argv) != 4: print "Usage set_plist_value <plist> <key> <value>" sys.exit(0) file = sys.argv[1] key = sys.argv[2] value = sys.argv[3] plist = plistlib.Plist.fromFile( file ) if plist is None: print "Error: Failed to open plist at %s" % file sys.exit(-1) if value == "true": plist[key] = True elif value == "false": plist[key] = False else: plist[key] = value plist.write( file ) Index: create_agent =================================================================== RCS file: /cvsroot/jahshaka/jah/installer/osx/create_agent,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- create_agent 18 Dec 2006 09:47:29 -0000 1.1 +++ create_agent 19 Dec 2006 15:57:49 -0000 1.2 @@ -15,6 +15,8 @@ py_script="${1%/}" parent="${2%/}" +app_name=${py_script%.py} + if [ ! -e "$parent" ] ; then echo "Error: parent bundle does not exist!" exit -1 @@ -36,7 +38,7 @@ # We have to exclude all our own python modules because py2app can't handle them python setup.py py2app $prefer_ppc --excludes openpluginlib,openmedialib,openassetlib,openimagelib,jahwidgets -bundle="./dist/${py_script%.py}.app" +bundle="./dist/$app_name.app" if [ ! -e "$bundle" ] ; then echo "Error: Failed to create an application bundle at: $bundle" @@ -74,14 +76,19 @@ done # Info.plist -cat "$bundle/Contents/Info.plist" | sed "s/org.pythonmac.unspecified/org.jahshaka/" > "$bundle/Contents/tmp.plist" -mv "$bundle/Contents/tmp.plist" "$bundle/Contents/Info.plist" +python "$script_root/set_plist_value.py" "$bundle/Contents/Info.plist" "CFBundleIdentifier" "org.jahshaka.$app_name" +python "$script_root/set_plist_value.py" "$bundle/Contents/Info.plist" "CFBundleIconFile" "$app_name.png" +python "$script_root/set_plist_value.py" "$bundle/Contents/Info.plist" "LSUIElement" "1" + +if [ "$prefer_ppc" != "" ] ; then + python "$script_root/set_plist_value.py" "$bundle/Contents/Info.plist" "LSPrefersPPC" "true" +fi # Now move the bundle to its destination mv "$bundle" "$parent/Contents/Resources" # And setup the symlinks -bundle="${py_script%.py}.app" +bundle="$app_name.app" rm -rf "$parent/Contents/Resources/$bundle/Contents/Frameworks" rm -rf "$parent/Contents/Resources/$bundle/Contents/PlugIns" @@ -97,8 +104,7 @@ popd > /dev/null echo -echo "${py_script%.py}.app created successfully" +echo "$app_name.app created successfully" echo echo "* Check that Info.plist settings are correct e.g. CFBundleIdentifier, CFBundleDocumentTypes, CFBundleIconFile" -echo "* Set LSUIElement to '1' if the bundle is an agent application" echo |