macosx-dmg
上传用户:riyaled888
上传日期:2009-03-27
资源大小:7338k
文件大小:1k
源码类别:

多媒体

开发平台:

MultiPlatform

  1. #!/bin/sh
  2. #
  3. # Posted to the projectbuilder-users list by Mike Ferris
  4. # Modified for vlc by Jon Lech Johansen
  5. #
  6. set -e
  7. # Requires at least three args
  8. if [ $# -lt 2 ] ; then
  9.     echo "usage: $0 imgName dirName ..." 1>&2
  10.     exit 1
  11. fi
  12. # Grab size and name
  13. imgName=$1
  14. shift
  15. dirName=$1
  16. shift
  17. imgSize=`du -sk ${dirName} | cut -f1`
  18. imgSize=$((${imgSize} / 1024 + 2))
  19. if [ $((${imgSize} < 5)) != 0 ] ; then
  20.     imgSize=5;
  21. fi
  22. # Create the image and format it
  23. rm -f "${imgName}.dmg"
  24. echo; echo "Creating ${imgSize} MB disk image named ${imgName}"
  25. hdiutil create "${imgName}.dmg" -megabytes "${imgSize}" -layout NONE -quiet
  26. dev=`hdid -nomount "${imgName}.dmg" | grep '/dev/disk[0-9]*' | cut -d " " -f 1`
  27. /sbin/newfs_hfs -w -v "${imgName}" -b 4096 "${dev}" > /dev/null
  28. # Mount the image and copy stuff
  29. mkdir ./mountpoint
  30. mount -t hfs ${dev} ./mountpoint
  31. echo "Copying contents to ${imgName}:"
  32. for i in ${dirName}/* ; do
  33.     echo "  ${i}"
  34.     /Developer/Tools/CpMac -r "${i}" ./mountpoint
  35. done
  36. umount ./mountpoint
  37. rmdir ./mountpoint
  38. hdiutil eject "${dev}" -quiet
  39. # Compress the image
  40. echo "Compressing ${imgName} disk image"
  41. mv "${imgName}.dmg" "${imgName}.orig.dmg"
  42. hdiutil convert "${imgName}.orig.dmg" -format UDZO -o "${imgName}" -quiet
  43. rm "${imgName}.orig.dmg"
  44. # Done
  45. echo; echo "Disk image creation completed:"
  46. ls -la "${imgName}.dmg"; echo