fun with applescript
This commit is contained in:
parent
8bead10998
commit
5645c4afff
5 changed files with 242 additions and 6 deletions
2
bin/9
2
bin/9
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
export PLAN9=/usr/local/plan9
|
export PLAN9=/Users/rsc/plan9
|
||||||
export PATH=$PLAN9/bin:$PATH
|
export PATH=$PLAN9/bin:$PATH
|
||||||
|
|
||||||
case $# in
|
case $# in
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env $PLAN9/bin/rc
|
#!/usr/bin/env rc
|
||||||
# doctype: synthesize proper command line for troff
|
# doctype: synthesize proper command line for troff
|
||||||
|
|
||||||
troff=troff
|
troff=troff
|
||||||
|
|
|
||||||
120
bin/man
Executable file
120
bin/man
Executable file
|
|
@ -0,0 +1,120 @@
|
||||||
|
#!/usr/bin/env rc
|
||||||
|
|
||||||
|
. $PLAN9/man/fonts
|
||||||
|
|
||||||
|
cmd=n
|
||||||
|
sec=()
|
||||||
|
S=$PLAN9/man
|
||||||
|
d=0
|
||||||
|
|
||||||
|
fn roff {
|
||||||
|
preproc=()
|
||||||
|
x=`{doctype $2}
|
||||||
|
if (~ $1 t) {
|
||||||
|
if(~ $x *grap*)
|
||||||
|
preproc=($preproc grap)
|
||||||
|
if(~ $x *pic*)
|
||||||
|
preproc=($preproc pic)
|
||||||
|
Nflag=-Tutf
|
||||||
|
}
|
||||||
|
if not {
|
||||||
|
Nflag=-N
|
||||||
|
}
|
||||||
|
if(~ $x *eqn*)
|
||||||
|
preproc=($preproc eqn)
|
||||||
|
if(~ $x *tbl*)
|
||||||
|
preproc=($preproc tbl)
|
||||||
|
switch($#preproc) {
|
||||||
|
case 0
|
||||||
|
{echo -n $FONTS; cat $2< /dev/null} | troff $Nflag -$MAN
|
||||||
|
case 1
|
||||||
|
{echo -n $FONTS; cat $2< /dev/null} | $preproc | troff $Nflag -$MAN
|
||||||
|
case 2
|
||||||
|
{echo -n $FONTS; cat $2< /dev/null} | $preproc(1) | $preproc(2) | troff $Nflag -$MAN
|
||||||
|
case 3
|
||||||
|
{echo -n $FONTS; cat $2< /dev/null} | $preproc(1) | $preproc(2) | $preproc(3) | | troff $Nflag -$MAN
|
||||||
|
case *
|
||||||
|
{echo -n $FONTS; cat $2< /dev/null} | $preproc(1) | $preproc(2) | $preproc(3) | | $preproc(4) | troff $Nflag -$MAN
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn page {
|
||||||
|
if(test -d /mnt/wsys/acme)
|
||||||
|
/bin/page -w
|
||||||
|
if not
|
||||||
|
/bin/page
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
while(~ $d 0) {
|
||||||
|
if(~ $#* 0) {
|
||||||
|
echo 'Usage: man [-ntp] [-s sec] [0-9] [0-9] ... name1 name2 ...' >[1=2]
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
if(test -d $S/man$1){
|
||||||
|
sec=($sec $1)
|
||||||
|
shift
|
||||||
|
}
|
||||||
|
if not switch($1) {
|
||||||
|
case -t ; cmd=t ; shift
|
||||||
|
case -n ; cmd=n ; shift
|
||||||
|
case -p ; cmd=p ; shift
|
||||||
|
case -P ; cmd=P ; shift
|
||||||
|
case * ; d=1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(~ $#sec 0) {
|
||||||
|
sec=`{ls -pd $S/man[0-9]* | sed 's/man//'}
|
||||||
|
}
|
||||||
|
ix=$S/man$sec/INDEX
|
||||||
|
if(~ $#* 1) pat='^'^$1^' '
|
||||||
|
if not pat='^('^`{echo $* | 9sed 's/ /|/g'}^') '
|
||||||
|
fils=()
|
||||||
|
for(i in $S/man$sec){
|
||||||
|
if(/bin/test -f $i/INDEX){
|
||||||
|
try=`{grep $pat $i/INDEX | 9sed 's/^[^ ]* //'}
|
||||||
|
if(! ~ $#try 0)
|
||||||
|
fils=($fils $i/$try)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# bug: should also do following loop if not all pages found
|
||||||
|
if(~ $#fils 0) {
|
||||||
|
# nothing in INDEX. try for file of given name
|
||||||
|
for(i) {
|
||||||
|
for(n in $sec) {
|
||||||
|
try=$S/man$n/$i.$n*
|
||||||
|
if (/bin/test -f $try)
|
||||||
|
fils=($fils $try)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(~ $#fils 0) {
|
||||||
|
echo 'man: no manual page' >[1=2]
|
||||||
|
exit 'no man'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(i in $fils) {
|
||||||
|
if(! /bin/test -f $i)
|
||||||
|
echo need $i >[1=2]
|
||||||
|
if not {
|
||||||
|
switch($cmd) {
|
||||||
|
case t
|
||||||
|
roff t $i
|
||||||
|
|
||||||
|
case p
|
||||||
|
roff t $i | proof
|
||||||
|
|
||||||
|
case P
|
||||||
|
roff t $i |tr2post |psfonts >/tmp/man.$pid.ps
|
||||||
|
psv /tmp/man.$pid.ps
|
||||||
|
rm -f /tmp/man.$pid.ps
|
||||||
|
|
||||||
|
case n
|
||||||
|
roff n $i | 9sed '
|
||||||
|
${
|
||||||
|
/^$/p
|
||||||
|
}
|
||||||
|
//N
|
||||||
|
/^\n$/D'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
53
bin/page
Executable file
53
bin/page
Executable file
|
|
@ -0,0 +1,53 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
preview()
|
||||||
|
{
|
||||||
|
list=""
|
||||||
|
pwd=`pwd`
|
||||||
|
for i in "$@"
|
||||||
|
do
|
||||||
|
if [ -n "$list" ]
|
||||||
|
then
|
||||||
|
list="$list, "
|
||||||
|
fi
|
||||||
|
n=`cleanname -d $pwd $i | sed 's!/!:!g'`
|
||||||
|
list="$list\"$n\""
|
||||||
|
done
|
||||||
|
# echo run $list
|
||||||
|
echo 'tell application "Preview"
|
||||||
|
activate
|
||||||
|
open {'"$list"'}
|
||||||
|
end tell' | osascript
|
||||||
|
}
|
||||||
|
|
||||||
|
case $# in
|
||||||
|
0)
|
||||||
|
cat >/var/tmp/page.$$.tmp
|
||||||
|
*="/var/tmp/page.$$.tmp"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
Darwin)
|
||||||
|
preview "$@"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
case "`file $1`" in
|
||||||
|
*PDF*)
|
||||||
|
psv $1
|
||||||
|
;;
|
||||||
|
*PS*)
|
||||||
|
psv $1
|
||||||
|
;;
|
||||||
|
*PostScript*)
|
||||||
|
psv $1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
qiv "$@"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
71
bin/web
71
bin/web
|
|
@ -1,8 +1,58 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
plumb1()
|
plumbfirefox()
|
||||||
{
|
{
|
||||||
case x-$BROWSER in
|
echo '
|
||||||
|
tell application "Firefox"
|
||||||
|
activate
|
||||||
|
tell application "System Events"
|
||||||
|
tell process "firefox"
|
||||||
|
keystroke "t" using {command down}
|
||||||
|
end tell
|
||||||
|
end tell
|
||||||
|
Get URL "'$1'"
|
||||||
|
end tell
|
||||||
|
' | osascript
|
||||||
|
}
|
||||||
|
|
||||||
|
plumbsafari()
|
||||||
|
{
|
||||||
|
echo '
|
||||||
|
tell application "Safari"
|
||||||
|
activate
|
||||||
|
tell application "System Events"
|
||||||
|
tell process "safari"
|
||||||
|
keystroke "t" using {command down}
|
||||||
|
end tell
|
||||||
|
end tell
|
||||||
|
open location "'$1'"
|
||||||
|
end tell
|
||||||
|
' | osascript
|
||||||
|
}
|
||||||
|
|
||||||
|
plumbapple()
|
||||||
|
{
|
||||||
|
case ${BROWSER:-none} in
|
||||||
|
firefox)
|
||||||
|
plumbfirefox "$@"
|
||||||
|
;;
|
||||||
|
safari)
|
||||||
|
plumbsafari "$@"
|
||||||
|
;;
|
||||||
|
none)
|
||||||
|
if [ -d /Applications/Firefox.app ]
|
||||||
|
then
|
||||||
|
plumbfirefox "$@"
|
||||||
|
else
|
||||||
|
plumbsafari "$@"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
plumbunix()
|
||||||
|
{
|
||||||
|
case ${BROWSER:-firefox} in
|
||||||
# Other browsers here
|
# Other browsers here
|
||||||
# ...
|
# ...
|
||||||
*opera*)
|
*opera*)
|
||||||
|
|
@ -15,8 +65,8 @@ plumb1()
|
||||||
$BROWSER -remote 'openURL('$i',new-tab)'
|
$BROWSER -remote 'openURL('$i',new-tab)'
|
||||||
;;
|
;;
|
||||||
x-)
|
x-)
|
||||||
# run firefox as default!
|
BROWSER=firefox
|
||||||
firefox -remote 'openURL('$i',new-tab)'
|
$BROWSER -remote 'openURL('$i',new-tab)'
|
||||||
;;
|
;;
|
||||||
*mozilla*)
|
*mozilla*)
|
||||||
$BROWSER -remote 'openURL('$i',new-tab)'
|
$BROWSER -remote 'openURL('$i',new-tab)'
|
||||||
|
|
@ -27,6 +77,19 @@ plumb1()
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
plumb1()
|
||||||
|
{
|
||||||
|
case `uname` in
|
||||||
|
Darwin)
|
||||||
|
plumbapple "$@"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
plumbunix "$@"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if [ $# = 0 ]
|
if [ $# = 0 ]
|
||||||
then
|
then
|
||||||
plumb1 about:blank
|
plumb1 about:blank
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue