• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: hdiutil attach fails under some repeatable circumstances
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: hdiutil attach fails under some repeatable circumstances


  • Subject: Re: hdiutil attach fails under some repeatable circumstances
  • From: Bill Peters <email@hidden>
  • Date: Fri, 19 Oct 2007 15:14:02 -0600

I'm not sure if this is the problem, but you might try removing the leading spaces in your variable definitions section. i.e, change

DMG_VOLUME_NAME= MyAppName

to

DMG_VOLUME_NAME=MyAppName

Bill



Quoting Brant Sears <email@hidden>:

Hi. I'm having a problem with hdituil attach.

I have a build script that builds a software product. The final phase
executes another script that packages the software onto a .dmg. In
order to do this, it takes a "templated" dmg, makes a copy, mounts it,
copies the software onto to mounted volume, unmounts it, converts the
format to read only (UDRO), unflattens it, adds a resource for a
software license agreement,  flattens it again, the converts it to UDZO.

I pasted in the script that does this into the bottom of this message.

This script works fine except under one particular circumstance.

The way that I want to invoke my build script is from a web page. In
order to do this, I have a script that runs all the time on my server.
It wakes up every 10 seconds and checks to see if a certain file
exists which contains "commands" for it. The commands it knows are to
either exit or build the software.

My CGI script basically writes out a "command" into this file to build
the software (with some arguments). My script doesn't actually execute
anything in this file, just reads it, interprets it, and then builds
the software and then deletes the file containing the command and goes
back to sleep.

Again, this works fine if I ssh into my server, startup the background
script, and then stay logged in.

However, once I log out of my server box (which is actually just a G4
Mac mini running standard Tiger which I'm using to do formal builds and
host a little web page for the builds), the hdiutil attach call fails.
At this point, I don't see the actual error message, but my script
tests for whether the volume is mounted and it reports a failure.

What am I doing wrong? Is there a known limitation for hdiutil attach?
Also, I apologize if this isn't the best list to ask this.

Thanks.

Brant Sears


#!/bin/bash

BUILD_STYLE="Release"

HOME=/Users/`whoami`

#APP_LOC=/Users/`whoami`/src/build/Release

APP_NAME=MyAppName
APP_FILE_NAME=${APP_NAME}.app
TEMP_DMG= MyAppName_template.dmg
SLA_DMG= MyAppName_SLA.dmg
FINAL_DMG= MyAppName.dmg
DMG_VOLUME_NAME= MyAppName


while getopts 'd:' OPT_LETTER do case "$OPT_LETTER" in d) echo "****Debug Deployment****" BUILD_STYLE="Debug" #APP_LOC=/Users/`whoami`/src/build/Debug ;;

		*)
			echo "Invalid argument ${OPT_LETTER}"
			exit 1
			;;
	esac
done


echo "Creating dmg..."

cd ~/src/


rm -f "${FINAL_DMG}" cp "${TEMP_DMG}" "${FINAL_DMG}"

if ! test -e "${FINAL_DMG}"
then
echo "****ERROR: Failed to copy dmg."
exit 1
fi

hdiutil attach "${FINAL_DMG}"

if ! test -e /Volumes/"${DMG_VOLUME_NAME}"
then
echo "****ERROR: Dmg failed to mount"   <---- THIS IS WHERE IT FAILS
exit 1
fi

rm -rf /Volumes/"${DMG_VOLUME_NAME}"/"${APP_FILE_NAME}"

echo "Copying ${APP} to Dmg"

cp -R "${APP}" /Volumes/"${DMG_VOLUME_NAME}"/

touch -f /Volumes/"${DMG_VOLUME_NAME}"/"${APP_FILE_NAME}"

if ! test -e /Volumes/"${DMG_VOLUME_NAME}"/"${APP_FILE_NAME}"
then
echo "****ERROR: Failed to copy application to Dmg."
exit 1
fi

hdiutil detach /Volumes/"${DMG_VOLUME_NAME}"

if test -e /Volumes/"${DMG_VOLUME_NAME}"
then
echo "****ERROR: Failed to unmount Dmg."
exit 1
fi



hdiutil convert -ov -format UDRO -o "${SLA_DMG}" "${FINAL_DMG}"

echo "Adding Software License Agreement to dmg..."

hdiutil unflatten "${SLA_DMG}"

Rez -a SLA.r -o "${SLA_DMG}"

hdiutil flatten "${SLA_DMG}"

hdiutil convert -ov -format UDZO -o "${DST_DMG}" "${SLA_DMG}"
rm -rf "${SLA_DMG}"

rm -rf "${FINAL_DMG}"

echo "Done!"

exit 0


_______________________________________________ Do not post admin requests to the list. They will be ignored. Xcode-users mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >hdiutil attach fails under some repeatable circumstances (From: Brant Sears <email@hidden>)

  • Prev by Date: Re: Getting Touched Resources to be Recopied
  • Next by Date: Re: Getting Touched Resources to be Recopied
  • Previous by thread: Re: hdiutil attach fails under some repeatable circumstances
  • Next by thread: Re: hdiutil attach fails under some repeatable circumstances
  • Index(es):
    • Date
    • Thread