#!/bin/ash case $0 in mv|*/mv) case "$1Z" in -hZ|Z) echo "rustic mv: mv file file|dir" exit ;; -*) shift ;; esac if [ -f "$1" ] ; then cp -l "$1" "$2" 2> /dev/null || cp "$1" "$2" rm -r "$1" else echo "$0: $1 is not a file." >& 2 fi ;; domainname|*/domainname) kern=/proc/sys/kernel/domainname if [ $1 ] ; then echo $1 > $kern else cat $kern fi ;; # mu-hostname by A.Manzini hostname|*/hostname) H=/proc/sys/kernel/hostname case "Z$1Z" in Z-hZ|Z--helpZ) cat << END hostname - show or set the system's host name usage: hostname [-h] [host.domain] END ;; ZZ) cat $H ;; *) echo "$1" > $H ;; esac ;; # Fancier rustique 'dirname', handles Win95 filenames # Oct 1 2000 - A. Costa dirname|*/dirname) unset d parse NoNulls case "$1" in -h|--help) echo dirname show directory of a file echo " Usage: dirname [FILENAME]" exit ;; /) d=/ ;; /*) parse=1 d=/ ;; */?*) parse=1 ;; *) d=. ;; esac if [ $parse ] ; then IFS=/ set -- $1 for arg in "$@" ; do [ "$arg" ] && NoNulls="$NoNulls \"$arg\"" done IFS=" " eval set -- $NoNulls case $# in 1) shift ;; !!2) while [ $# -gt 2 ] ; do d="$d$1/" shift done ;; esac d="$d$1" fi echo $d ;; free|*/free) cat /proc/meminfo ;; killall5|*/killall5) # ignore set -x SIGNAL=$1 mount | fgrep -v "/proc"| fgrep -v " /usr "|fgrep -v " / "| \ while read line; do set -- $line fuser -k -m $1 done fuser -k -m /usr fuser -k -m / ps ;; pidof|*/pidof) list= name=$1 for i in /proc/[0-9]*/; do if [ -r $i/stat ] ; then read stat < $i/stat set -- $stat case $2 in *$name*) list="$list $1" ;; esac fi done echo $list ;; ps|*/ps) for i in /proc/[0-9]*/; do read cmd < $i/cmdline read stat < $i/stat set -- $stat echo -e "$1\t$2 $cmd" done ;; uname|*/uname) opt=$1 set -- `cat /proc/version` case $opt in -a) echo "$@" ;; -r|--release) echo $3 ;; -s|--sysname) echo $1 ;; *) echo muLinux ;; esac ;; basename|*/basename) ext=$2 case "$1" in */*) IFS="/" set -- $1 eval name="\$$#" ;; *) name="$1" ;; esac if [ "$ext" ] ; then echo $name | sed "s/$ext\$//" else echo $name fi ;; grep|*/grep) case $1 in ""|-h) echo "Usage: grep [-v] " exit ;; -v) R="/$2/!P" shift 2 ;; *) R="/$1/P" shift ;; esac sed -n "$R" "$@" ;; lsmod|*/lsmod) echo "Module Pages Used by" cat /proc/modules ;; zless|*/zless) /bin/zcat "$@" | /bin/less ;; killall|*/killall) case Z$1Z in ZZ) cat << END usage: killall [ -signal ] name ... killall -l killall -V END ;; Z-VZ) echo "Rustic killall" ;; Z-lZ) kill -l ;; Z-*) SIGNAL=$1 shift kill $SIGNAL `/bin/pidof $@` ;; Z*) kill `/bin/pidof $@`;; esac ;; *) echo "/bin/gateway: no function defined for $0" exit 1 ;; esac exit 0