559def9729
the script to behave. It checks the current directory and the directory one up for bochs.app. If both those checks fails then it just outright asks the user for what bochs to run. (And notes the path so it won't ask again unless it doesn't find things where they last were) Modified Files: bochs.applescript script_compiled.rsrc
70 lines
2.3 KiB
AppleScript
70 lines
2.3 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 & ";" & (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 |