Mac OS X package: When the dmg is opened force the open of the dmg window. Order...
authorPierre d'Herbemont <pdherbemont@videolan.org>
Tue, 3 Apr 2007 16:46:15 +0000 (16:46 +0000)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Tue, 3 Apr 2007 16:46:15 +0000 (16:46 +0000)
Makefile.am

index e143127..f140943 100644 (file)
@@ -877,14 +877,76 @@ package-macosx:
        else \
          cp -R "$(top_builddir)/VLC.app" "$(top_builddir)/vlc-${VERSION}/VLC.app"; \
        fi
-       cd "$(srcdir)" && cp AUTHORS COPYING ChangeLog README README.MacOSX.rtf THANKS NEWS $(top_builddir)/vlc-${VERSION}/ && cp -R extras/MacOSX/Delete_Preferences.app $(top_builddir)/vlc-${VERSION}/
+       cd "$(srcdir)" && mkdir -p $(top_builddir)/vlc-${VERSION}/Goodies/ && \
+          mkdir -p $(top_builddir)/vlc-${VERSION}/.background/ && \
+          cp AUTHORS COPYING ChangeLog README THANKS NEWS $(top_builddir)/vlc-${VERSION}/Goodies/ && \
+          cp -R extras/MacOSX/Delete_Preferences.app $(top_builddir)/vlc-${VERSION}/Goodies/Delete\ VLC\ Preferences.app && \
+         cp README.MacOSX.rtf $(top_builddir)/vlc-${VERSION}/Read\ Me.rtf && \
+         cp extras/MacOSX/Resources/about_bg.png $(top_builddir)/vlc-${VERSION}/.background/background.png ;
+
+# Place a link to the application folder
+       ln -s /Applications $(top_builddir)/vlc-${VERSION}/Applications ;
 
 # Create disk image 
        echo "Creating disk image" ;
        rm -f "$(top_builddir)/vlc-${VERSION}.dmg" ;
        hdiutil create -srcfolder "$(top_builddir)/vlc-${VERSION}" \
-         "$(top_builddir)/vlc-${VERSION}.dmg" -format UDZO \
+         "$(top_builddir)/vlc-${VERSION}.dmg" -format UDRW \
          -scrub -imagekey zlib-level=9 ;
+
+# Make sure the root window of the dmg will pop up when the dmg is mounted.
+# Note: We dont mount in /Volumes to be sure we won't collide with an other
+# finder mounted dmg with the same name.
+       echo "Make sure the root window of the dmg will pop up when the dmg is mounted" ;
+       mkdir -p $(top_builddir)/vlcmnt ;
+       hdiutil attach -readwrite -noverify -noautoopen "$(top_builddir)/vlc-${VERSION}.dmg" -mountpoint "$(top_builddir)/vlcmnt/vlc-${VERSION}" ;
+       bless --folder "$(top_builddir)/vlcmnt/vlc-${VERSION}/" --openfolder "$(top_builddir)/vlcmnt/vlc-${VERSION}" ;
+       sleep 1 # Make sure operation completes
+
+# Place the image disk finder icon at the correct place
+# Note: careful here the finder does some weird things
+# sometimes. delays in the script should prevent those.
+       cd "$(srcdir)"
+       osascript -e "tell application \"Finder\"" \
+       -e "   set f to POSIX file (\"$(top_builddir)/vlcmnt/vlc-${VERSION}/\" as string) as alias" \
+       -e "   tell folder f" \
+       -e "       open" \
+       -e "       tell container window" \
+       -e "          set toolbar visible to false" \
+       -e "          set statusbar visible to false" \
+       -e "          set current view to icon view" \
+       -e "          delay 1 -- Sync" \
+       -e "          set the bounds to {50, 100, 1000, 1000} -- Big size so the finder won't do silly things" \
+       -e "       end tell" \
+       -e "       delay 1 -- Sync" \
+       -e "       set icon size of the icon view options of container window to 128" \
+       -e "       set arrangement of the icon view options of container window to not arranged" \
+       -e "       set background picture of the icon view options of container window to file \".background:background.png\"" \
+       -e "       set position of item \"VLC.app\" to {100, 20}" \
+       -e "       set position of item \"Applications\" to {310, 20}" \
+       -e "       set position of item \"Goodies\" to {40, 200}" \
+       -e "       set position of item \"Read Me.rtf\" to {410, 200}" \
+       -e "       set the bounds of the container window to {50, 100, 590, 500}" \
+       -e "       update without registering applications" \
+       -e "       delay 5 -- Sync" \
+       -e "       close" \        
+       -e "   end tell" \
+       -e "   -- Sync" \
+       -e "   delay 5" \
+       -e "end tell" || true # Make sure we don't make the build bots fail
+
+# Unmount the image now
+       hdiutil detach "$(top_builddir)/vlcmnt/vlc-${VERSION}" ;
+       rm -R $(top_builddir)/vlcmnt ;
+
+# Make sure the image is not writable
+# Note: We can't directly create a read only dmg as we do the bless stuff
+       echo "Make the disk image read-only" ;
+       mv "$(top_builddir)/vlc-${VERSION}.dmg" "$(top_builddir)/vlc-${VERSION}-rw.dmg" ;
+       hdiutil convert "$(top_builddir)/vlc-${VERSION}-rw.dmg" -format UDZO -o "$(top_builddir)/vlc-${VERSION}.dmg" ;
+       rm "$(top_builddir)/vlc-${VERSION}-rw.dmg" ;
+
+# We are done
        echo "Disk image creation completed:" ;
        ls -la "$(top_builddir)/vlc-${VERSION}.dmg" ; echo ;