mac term packaging code (trunk only)
: Modified Files: : sys/unix/hints/macosx.sh sys/unix/hints/macosx10.5 : win/macosx/NetHackRecover.applescript win/macosx/recover.pl : Added Files: : win/macosx/NetHackGuidebook.applescript : win/macosx/NetHackTerm.applescript
This commit is contained in:
11
win/macosx/NetHackGuidebook.applescript
Normal file
11
win/macosx/NetHackGuidebook.applescript
Normal file
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/osascript
|
||||
# NetHack 3.5.0 NetHackGuidebook.applescript $Date$ $Revision$
|
||||
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2011
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
# Display the Guidebook from the GUI.
|
||||
|
||||
tell application "Finder"
|
||||
open location "file:///usr/games/doc/NetHackGuidebook.pdf"
|
||||
delay 5
|
||||
end tell
|
||||
@@ -15,10 +15,11 @@ if not canceled then
|
||||
set hpath to the path to me
|
||||
set mpath to the POSIX path of hpath
|
||||
considering case
|
||||
set lastpos to offset of "/nethackdir" in mpath
|
||||
set lastpos to lastpos + (length of "/nethackdir")
|
||||
set rawpath to (get text 1 through lastpos of mpath) & "/recover.pl"
|
||||
set safepath to the quoted form of rawpath
|
||||
--set lastpos to offset of "/nethackdir" in mpath
|
||||
--set lastpos to lastpos + (length of "/nethackdir")
|
||||
--set rawpath to (get text 1 through lastpos of mpath) & "/recover.pl"
|
||||
--set safepath to the quoted form of rawpath
|
||||
set safepath to the quoted form of "/usr/games/lib/nethackdir/recover.pl"
|
||||
end considering
|
||||
do shell script safepath
|
||||
display dialog result with title "NetHackRecover Output"
|
||||
|
||||
130
win/macosx/NetHackTerm.applescript
Normal file
130
win/macosx/NetHackTerm.applescript
Normal file
@@ -0,0 +1,130 @@
|
||||
#!/usr/bin/osascript
|
||||
# NetHack 3.5.0 NetHackTerm.applescript $Date$ $Revision$
|
||||
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2011
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
# Run the terminal port from the GUI.
|
||||
|
||||
# BUGS:
|
||||
# We close any terminal windows with no processes in them, even if they
|
||||
# don't belong to us because we can't really tell which ones do belong to us.
|
||||
# Shouldn't be serious since anyone using this is unlikely to be using Terminal
|
||||
# for anything else.
|
||||
set debug to false
|
||||
|
||||
set needshutdown to false
|
||||
tell application "Terminal"
|
||||
# see if we're going to have to shut it down at the end because we started it up
|
||||
if it is not running then
|
||||
set needshutdown to true
|
||||
end if
|
||||
|
||||
activate
|
||||
#open new window and run NetHack in it
|
||||
do script with command "clear;sleep 1;/usr/games/bin/nethack;echo '(press RETURN to exit)';awk '{exit}';exit"
|
||||
set nhresult to result -- class is tab
|
||||
set nhresrec to result as record
|
||||
set nhreslist to result as list
|
||||
set nhwin to item 4 of nhreslist
|
||||
set custom title of nhwin to "NH"
|
||||
#set title displays custom title of nhresult to true
|
||||
set title displays device name of nhresult to false
|
||||
set title displays shell path of nhresult to false
|
||||
set title displays window size of nhresult to false
|
||||
set title displays file name of nhresult to false
|
||||
#set idnum to id of nhresult
|
||||
set xxx to class of nhresrec
|
||||
get class of nhresrec -- record
|
||||
get length of nhresrec -- 4
|
||||
set nhwinname to name of nhwin
|
||||
set nhtab to selected tab of nhwin
|
||||
get processes of nhtab
|
||||
|
||||
# main loop - wait for all nethack processes to exit
|
||||
set hit to true
|
||||
set nhname to "nethack" as text
|
||||
delay 4
|
||||
repeat while hit
|
||||
set hit to false
|
||||
delay 0.5
|
||||
|
||||
# don't blow up if the window has gone away
|
||||
try
|
||||
set procs to get processes of nhtab
|
||||
on error number -1728
|
||||
exit repeat
|
||||
end try
|
||||
|
||||
repeat with pname in procs
|
||||
if debug then
|
||||
display alert "PNAME=" & pname & "=" & nhname & "="
|
||||
end if
|
||||
# XXX this test is odd, but more obvious tests fail
|
||||
if pname starts with nhname then
|
||||
#display alert "HIT" -- dangerous - infinite loop
|
||||
set hit to true
|
||||
end if
|
||||
# yes, this is scary.
|
||||
if pname starts with ("awk" as text) then
|
||||
set hit to true
|
||||
end if
|
||||
end repeat
|
||||
end repeat
|
||||
if debug then
|
||||
display alert "DONE"
|
||||
end if
|
||||
|
||||
# window may have already closed or dropped its last process (error -1728)
|
||||
try
|
||||
close window nhwinname
|
||||
on error errText number errNum
|
||||
if errNum = -1728 then
|
||||
if debug then
|
||||
display alert "close failed (expected)"
|
||||
end if
|
||||
else
|
||||
-- unexpected error - show it
|
||||
display alert "close failed: " & errText & " errnum=" & errNum
|
||||
end if
|
||||
end try
|
||||
|
||||
end tell
|
||||
|
||||
# Close all the windows that don't have any live processes in them.
|
||||
tell application "Terminal"
|
||||
set wc to count windows
|
||||
set pending to {}
|
||||
if debug then
|
||||
display alert "COUNT is " & wc
|
||||
end if
|
||||
repeat with win in windows
|
||||
if debug then
|
||||
display alert "WIN: " & (name of win) & " TABS: " & (count of tabs of win) & " PROCS: " & (count of processes of item 1 of tabs of win)
|
||||
end if
|
||||
set pcount to count of processes of item 1 of tabs of win
|
||||
if pcount is 0 then
|
||||
copy win to the end of pending
|
||||
set wc to wc - 1
|
||||
end if
|
||||
end repeat
|
||||
end tell
|
||||
|
||||
if debug then
|
||||
display alert "LATE COUNT is " & wc
|
||||
end if
|
||||
repeat with win in pending
|
||||
try
|
||||
close win
|
||||
end try
|
||||
end repeat
|
||||
|
||||
# If we started Terminal.app and the user doesn't have anything else running,
|
||||
# shut it down.
|
||||
if needshutdown and (wc is 0) then
|
||||
if debug then
|
||||
display alert "trying shutdown"
|
||||
end if
|
||||
tell application "Terminal"
|
||||
quit
|
||||
end tell
|
||||
end if
|
||||
@@ -13,7 +13,7 @@ if(! -d $playground){
|
||||
print "Cannot find playground $playground.";
|
||||
exit 0
|
||||
}
|
||||
if(! -f "$playground/castle.lev"){
|
||||
if(! -f "$playground/castle.lev" && ! -f "$playground/nhdat"){
|
||||
print "Failed to find playground $playground.";
|
||||
exit 0
|
||||
}
|
||||
@@ -38,9 +38,12 @@ if($try_perm){
|
||||
}
|
||||
|
||||
# run recover, but only if there is something that looks promising
|
||||
$recover = "./recover";
|
||||
$recover = "/usr/games/bin/recover" unless(-e $recover);
|
||||
|
||||
$uid = $<;
|
||||
foreach ( <$uid*.0> ){
|
||||
system ("./recover -d . $_");
|
||||
system ("$recover -d . $_");
|
||||
}
|
||||
|
||||
print "Done.\n";
|
||||
|
||||
Reference in New Issue
Block a user