#!/bin/ksh
#
# $Revision: 1.3 $ $Date: 2012-07-26 17:11:48-04 $
# $Source: /home/vogelke/bin/RCS/pidof,v $
# $Host: sys7.com $
# $UUID: 64032243-8914-3340-a2b2-3b74130292d9 $
#
#<pidof: print PID of a given process.

PATH=/bin:/usr/bin
export PATH

# version: prints the current version to stdout.
version () {
    lsedscr='s/RCSfile: //
    s/.Date: //
    s/,v . .Revision: /  v/
    s/\$//g'

    lrevno='$RCSfile: pidof,v $ $Revision: 1.3 $'
    lrevdate='$Date: 2012-07-26 17:11:48-04 $'
    echo "$lrevno $lrevdate" | sed -e "$lsedscr"
}

case "$#" in
    1)  ;;
    *)  echo "usage: $0 procname" >&2; exit 1 ;;
esac

case "$1" in
    -v) version; exit 0 ;;
    *)  ;;
esac

# FORMAT OF PS COMMANDS:
#    BSD: ps -axc
#
#    Solaris:  ps -ef -o pid,tty,s,time,comm
#      (use fname instead of comm for first 8 chars of
#      program basename, or use /usr/ucb/ps axc)
#
#    Linux: ps axc

case "$(uname -s)" in
    SunOS)   cmd='ps -ef -o pid,tty,s,time,comm' ;;
    FreeBSD) cmd='ps -axc' ;;
    Linux)   cmd='ps axc' ;;
    *)       cmd='ps ax' ;;
esac

$cmd | exec nawk -v prog="$1" '{ if ($5 == prog) print $1 }'
exit 1
