Bochs/bochs/build/macosx/bochs.applescript
2003-10-03 20:58:23 +00:00

70 lines
2.4 KiB
AppleScript

property bochs_path : "Contents/MacOS/bochs"
property bochs_app : ""
on run
tell application "Finder" to get container of (path to me) as string
set script_path to POSIX path of result
-- Locate bochs
set bochs_alias to findBochs()
-- Tell Terminal to run bochs from the command line
--Use the script's directory as the current directory
tell application "Terminal"
activate
do script "cd '" & script_path & "';exec '" & (POSIX path of bochs_app) & bochs_path&"'"
-- Wait for Terminal to change the name first, then change it to ours
delay 1
set AppleScript's text item delimiters to "/"
set the text_item_list to every text item of the script_path
set AppleScript's text item delimiters to ""
set next_to_last to ((count of text_item_list) - 1)
set the folder_name to item next_to_last of text_item_list
set name of front window to "Running bochs in ../" & folder_name & "/"
end tell
end run
-- Taken from examples at http://www.applescriptsourcebook.com/tips/findlibrary.html
to Hunt for itemName at folderList
--Returns path to itemName as string, or empty string if not found
repeat with aFolder in folderList
try
if class of aFolder is constant then
return alias ((path to aFolder as string) & itemName) as string
else if folder of (info for alias aFolder) then
return alias (aFolder & itemName) as string
end if
on error number -43 --item not there, go to next folder
end try
end repeat
return "" --return empty string if item not found
end Hunt
on findBochs()
try
if bochs_app is "" then error number -43
return alias bochs_app
on error number -43
-- bochs_app no good, go hunting
try
tell application "Finder" to get container of (path to me) as string
set this_dir_alias to alias result
tell application "Finder" to get container of (this_dir_alias) as string
set one_up_dir_alias to alias result
set TheUsualPlaces to {this_dir_alias as string, one_up_dir_alias as string}
Hunt for "bochs.app" at TheUsualPlaces
set result_alias to result
if result_alias is "" then error number -43
set bochs_app to result_alias as string
return result_alias
on error number -43
--Give up seeking, Ask the user
choose application with prompt "Please locate Bochs:" as alias
set result_alias to result
set bochs_app to result_alias as string
return result_alias
end try
end try
end findBochs