#!/usr/local/bin/bash
# Copyright (C) Naotoshi Seo, s1080134

function printUsage(){
  cmd=${0##*/}
  echo "String specification kill. kill front end." 1>&2
  echo "Usage: $cmd [kill_options] [: [egrep options]] pattern" 1>&2
  echo "         ex) $cmd emacs" 1>&2
  echo "         ex) $cmd -9 emacs" 1>&2
  echo "         ex) $cmd '.*'" 1>&2 
  echo "         ex) $cmd 'emacs|kterm'" 1>&2 
  echo "         ex) $cmd : -v tcsh" 1>&2
  echo "         ex) $cmd -KILL : -v tcsh" 1>&2
  echo "         ex) yes | $cmd -9 : -v tcsh" 1>&2
  echo "       Note: Don't use kill's [-s signal] option. Use [-signal] option" 1>&2
}

if [ $# -lt 1 ]; then
  printUsage
  exit 0
fi

if [ "$1" = ":" ];then
  shift
else
  #Kill Options
  while [ $# -gt 0 ]
    do
    if [ $(expr "x$1" : 'x-') -eq 0 ];then
	if [ "$1" = ":" ];then
	    shift
	fi
	break
    fi
    options="$options$1 "
    shift
  done
  if [ $# -eq 0 ]; then
    printUsage
    exit 1
  fi
fi

#main
for ps in `/bin/ps -f -u $USER | grep -v $0 | egrep "$@" | sed 's/ /;/g'` 
  do
  ps=`echo "$ps" | sed 's/;/ /g'`
  echo "$ps"
  pid=`echo $ps | awk '{print \$2}'`
  [ $(expr "$pid" : '[0-9]*$') -eq 0 ] && continue
  echo -n "kill $options$pid ? (y/[n]) "
  read reply
  [ "$reply" == "y" ] && kill $options$pid
done
