mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
Autoframework (Jeff Sickel)
This commit is contained in:
parent
f810f8a5b0
commit
fc165dcb3e
3 changed files with 87 additions and 5 deletions
53
bin/9l
53
bin/9l
|
@ -2,14 +2,16 @@
|
||||||
|
|
||||||
test -f $PLAN9/config && . $PLAN9/config
|
test -f $PLAN9/config && . $PLAN9/config
|
||||||
libsl=""
|
libsl=""
|
||||||
|
frameworks=""
|
||||||
doautolib=true
|
doautolib=true
|
||||||
|
doautoframework=true
|
||||||
verbose=false
|
verbose=false
|
||||||
|
|
||||||
if [ "x$1" = "x-l" ]
|
if [ "x$1" = "x-l" ]
|
||||||
then
|
then
|
||||||
shift
|
shift
|
||||||
doautolib=false
|
doautolib=false
|
||||||
|
doautoframework=false
|
||||||
elif [ "x$1" = "x-v" ]
|
elif [ "x$1" = "x-v" ]
|
||||||
then
|
then
|
||||||
shift
|
shift
|
||||||
|
@ -162,6 +164,51 @@ then
|
||||||
libsl="$libsl -L$X11/lib -lX11"
|
libsl="$libsl -L$X11/lib -lX11"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
if $doautoframework
|
||||||
|
then
|
||||||
|
ofiles=""
|
||||||
|
for i
|
||||||
|
do
|
||||||
|
case "$i" in
|
||||||
|
*.[ao])
|
||||||
|
ofiles="$ofiles $i"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# echo "ofiles $ofiles"
|
||||||
|
autoframeworks=""
|
||||||
|
if [ "x$ofiles" != "x" ]
|
||||||
|
then
|
||||||
|
a=`
|
||||||
|
nm $ofiles |
|
||||||
|
grep '__p9l_autoframework_[a-zA-Z0-9+-]*$' |
|
||||||
|
sed 's/.*__p9l_autoframework_//' |
|
||||||
|
sort -u
|
||||||
|
`
|
||||||
|
for i in $a
|
||||||
|
do
|
||||||
|
autoframeworks="$autoframeworks $i"
|
||||||
|
eval "need$i=true"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $verbose
|
||||||
|
then
|
||||||
|
echo "autoframeworks $autoframeworks"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i in $autoframeworks
|
||||||
|
do
|
||||||
|
eval "have$i() { false; }"
|
||||||
|
done
|
||||||
|
|
||||||
|
frameworks=""
|
||||||
|
for i in $autoframeworks
|
||||||
|
do
|
||||||
|
frameworks="-framework $i $frameworks"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
extralibs="-lm"
|
extralibs="-lm"
|
||||||
tag="${SYSNAME:-`uname`}-${OBJTYPE:-`uname -m`}"
|
tag="${SYSNAME:-`uname`}-${OBJTYPE:-`uname -m`}"
|
||||||
|
@ -245,7 +292,7 @@ esac
|
||||||
|
|
||||||
if $verbose
|
if $verbose
|
||||||
then
|
then
|
||||||
echo $ld -L$PLAN9/lib "$@" $libsl $extralibs
|
echo $ld -L$PLAN9/lib "$@" $libsl $extralibs $frameworks
|
||||||
fi
|
fi
|
||||||
|
|
||||||
xtmp=/tmp/9l.$$.$USER.out
|
xtmp=/tmp/9l.$$.$USER.out
|
||||||
|
@ -254,7 +301,7 @@ xxout() {
|
||||||
rm -f $xtmp
|
rm -f $xtmp
|
||||||
}
|
}
|
||||||
|
|
||||||
if $ld -L$PLAN9/lib "$@" $libsl $extralibs >$xtmp 2>&1
|
if $ld -L$PLAN9/lib "$@" $libsl $extralibs $frameworks >$xtmp 2>&1
|
||||||
then
|
then
|
||||||
xxout
|
xxout
|
||||||
exit 0
|
exit 0
|
||||||
|
|
18
bin/ps
18
bin/ps
|
@ -64,9 +64,25 @@ function statestr(s, wchan)
|
||||||
if(start ~ /..:..:../){ # drop :ss
|
if(start ~ /..:..:../){ # drop :ss
|
||||||
sub(/:..$/, "", start);
|
sub(/:..$/, "", start);
|
||||||
}
|
}
|
||||||
printf("%-8s %11d %8s %8s %8dK %-8s %s\n",
|
sub(/[ ]+$/, "", cmd);
|
||||||
|
line[0+nline++] = sprintf("%s\001%d\001%s\001%s\001%dK\001%s\001%s",
|
||||||
user, pid, start, cputime, mem, statestr(stat, wchan), cmd);
|
user, pid, start, cputime, mem, statestr(stat, wchan), cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
END{
|
||||||
|
for(i=0; i<nline; i++){
|
||||||
|
split(line[i], a, "\001");
|
||||||
|
for(j=1; j<=7; j++)
|
||||||
|
if(length(a[j]) > max[j])
|
||||||
|
max[j] = length(a[j]);
|
||||||
|
}
|
||||||
|
for(i=0; i<nline; i++){
|
||||||
|
split(line[i], a, "\001");
|
||||||
|
printf("%-*s %*s %*s %*s %*s %-*s %s\n",
|
||||||
|
max[1], a[1], max[2], a[2], max[3], a[3], max[4], a[4],
|
||||||
|
max[5], a[5], max[6], a[6], a[7]);
|
||||||
|
}
|
||||||
|
}
|
||||||
!
|
!
|
||||||
|
|
||||||
case "${SYSNAME:-`uname`}" in
|
case "${SYSNAME:-`uname`}" in
|
||||||
|
|
21
bin/psu
21
bin/psu
|
@ -19,4 +19,23 @@ case $# in
|
||||||
exit 1
|
exit 1
|
||||||
esac
|
esac
|
||||||
|
|
||||||
9 ps $flag | grep "^$user "
|
9 ps $flag | grep "^$user " | awk '
|
||||||
|
BEGIN { min = 1000000 };
|
||||||
|
{
|
||||||
|
line[0+nline++] = $0;
|
||||||
|
n = length;
|
||||||
|
sub(/ +/, "", $0);
|
||||||
|
n -= length;
|
||||||
|
if(n < min)
|
||||||
|
min = n;
|
||||||
|
}
|
||||||
|
END{
|
||||||
|
s = "";
|
||||||
|
for(i=0; i<min-1; i++)
|
||||||
|
s = s " ";
|
||||||
|
for(i=0; i<nline; i++){
|
||||||
|
sub(s, "", line[i])
|
||||||
|
print line[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'
|
||||||
|
|
Loading…
Reference in a new issue