#!/bin/csh -f
#KillByName V1.2 by Martin Schlodder
if ($#argv == 3 && $1 == "-9" && $2 == "-a") then
  set opt = "-9"
  set one = 0
  set nam = $3
else if ($#argv == 3 && $2 == "-9" && $1 == "-a") then
  set opt = "-9"
  set one = 0
  set nam = $3
else if ($#argv == 3 && $2 == "-9" && $3 == "-a") then
  set opt = "-9"
  set one = 0
  set nam = $1
else if ($#argv == 3 && $3 == "-9" && $2 == "-a") then
  set opt = "-9"
  set one = 0
  set nam = $1
else if ($#argv == 2 && $1 == "-9") then
  set opt = "-9"
  set one = 1
  set nam = $2
else if ($#argv == 2 && $2 == "-9") then
  set opt = "-9"
  set one = 1
  set nam = $1
else if ($#argv == 2 && $1 == "-a") then
  set opt = ""
  set one = 0
  set nam = $2
else if ($#argv == 2 && $2 == "-a") then
  set opt = ""
  set one = 0
  set nam = $1
else if ($#argv == 1) then
  set opt = ""
  set one = 1
  set nam = $1
else
  echo "usage: killbyname [-9] [-a] name"
  exit
endif
if ($?OSTYPE) then
  if ($OSTYPE == "hpux") then
    set kills=`ps -u$USER|awk -v task=$nam '{if (tolower(task) == tolower($4) ) print $1}'`
  else if ($OSTYPE == "aix") then
    set kills=`ps -u$USER|awk -v task=$nam '{if (tolower(task) == tolower($5) ) print $2}'`
  else if ($OSTYPE == "linux") then
    set kills=`ps -u$USER|awk -v task=$nam '{if (tolower(task) == tolower($4) ) print $1}'`
  else
    echo "unknown operation system"
    exit
  endif
else if ($?OS) then
  if ($OS == "IRIX") then
    set kills=`ps -u$USER|nawk -v task=$nam '{if (tolower(task) == tolower($4) ) print $1}'`
  else
    echo "unknown operation system"
    exit
  endif
else
  set kills=`ps -cgx|awk '{if (tolower(task) == tolower($5) ) print $1}' task=$nam`
endif
if ($#kills) then
  foreach task ($kills)
    kill $opt $task
    if ($one) then
      exit
    endif
  end
else
  echo "process not found"
endif
unset kills
unset opt
unset all
unset nam
