2014-02-06 9 views
2

root 응용 프로그램 폴더 (/ Application)에 응용 프로그램 설치 스크립트를 만들었지 만 사용자 홈 폴더 $ HOME/Application (~/신청).

: 여기에 내가 속성 { "응용 프로그램"이름}과 "/ 응용 프로그램"POSIX 파일 컨테이너 창에서 새 별명 파일을

을 변경 시도 내 스크립트

#!/bin/sh 
#http://stackoverflow.com/questions/96882/how-do-i-create-a-nice-looking-dmg-for-mac-os-x-using-command-line-tools 

set -o verbose #echo onset +o verbose #echo off 

# Note: this must run on a Mac 

APP_NAME="XXX" 
OUT_MAC=out/ 
DMG_PATH=${OUT_MAC}${APP_NAME}.dmg 
DMG_CONTENT_PATH=${OUT_MAC}contents 
BUNDLE_PATH=${DMG_CONTENT_PATH}/${APP_NAME}.app 

#clean old dmg if exist 
rm -rf ${DMG_PATH} 

SetFile -a B "${BUNDLE_PATH}" 

hdiutil create -srcfolder ${DMG_CONTENT_PATH} -volname ${APP_NAME} -fs HFS+ \ 
-fsargs "-c c=64,a=16,e=16" -format UDRW -size 550m ${DMG_PATH}.temp.dmg 

device=$(hdiutil attach -readwrite -noverify -noautoopen "${DMG_PATH}".temp.dmg | \ 
egrep '^/dev/' | sed 1q | awk '{print $1}') 

osascript <<EOT 
tell application "Finder" 
tell disk "${APP_NAME}" 
open 
set current view of container window to icon view 
set toolbar visible of container window to false 
set statusbar visible of container window to false 
set the bounds of container window to {200, 100, 900, 530} 
set theViewOptions to the icon view options of container window 
set arrangement of theViewOptions to snap to grid 
set icon size of theViewOptions to 96 
set background picture of theViewOptions to file ".background:installer_dmg_bg.png" 
make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"} 
delay 1 
set position of item "${APP_NAME}" of container window to {200, 200} 
set position of item "Applications" of container window to {500, 200} 
-- update without registering applications 
delay 5 
-- eject 
end tell 
end tell 
EOT 

chmod -Rf go-w "/Volumes/${APP_NAME}" 
sync 
sync 
hdiutil detach ${device} 
sync 
hdiutil convert "${DMG_PATH}".temp.dmg -format UDZO -imagekey zlib-level=9 -o ${DMG_PATH} 
rm -rf "${DMG_PATH}".temp.dmg 

입니다

에 컨테이너 승리의 새 별명 파일을 다우 속성 {이름 : "응용 프로그램"}와 POSIX 파일 "~/응용 프로그램" 에

하는 POSIX 파일 "의 $ HOME/응용 프로그램"에 컨테이너 창에서 새 별명 파일을 속성 {name : "Applications"}

운이 없다! 지정하면

답변

1

이 작업을 수행 할 수 있습니다

path to applications folder from user domain 

그래서 스크립트에서이 같은 수 :

set appHome to path to applications folder from user domain 
make new alias file at container window to appHome with properties {name:"Applications"} 

*을 경로를 사용하는 경우 응용 프로그램 폴더에 사용자 도메인에서POSIX file은 필요하지 않습니다.

+0

작동 중입니다. Tx :) – zvjerka24