- /bin/ps $extra_flags wuax >$PID_DUMP
- # remove the first line of the file, search for the pattern the
- # user wants to find, and just pluck the process ids out of the
- # results.
- PIDS_SOUGHT=$(cat $PID_DUMP \
- | sed -e '1d' \
- | grep -i "$1" \
- | sed -n -e "$appropriate_pattern")
- if [ ! -z "$PIDS_SOUGHT" ]; then echo "$PIDS_SOUGHT"; fi
- /bin/rm $PID_DUMP
-}
-
-# finds all processes matching the pattern specified and shows their full
-# process listing (whereas psfind just lists process ids).
-function psa {
- p=$(psfind "$1")
- if [ ! -z "$p" ]; then
- echo ""
- echo "Processes containing \"$1\"..."
- echo ""
- if [ -n "$IS_DARWIN" ]; then
- unset fuzil_sentinel
- for i in $p; do
- # only print the header the first time.
- if [ -z "$fuzil_sentinel" ]; then
- ps $i -w -u
+
+ # a handy little method that can be used for date strings. it was getting
+ # really tiresome how many different ways the script did the date formatting.
+ function date_stringer() {
+ date +"%Y_%m_%e_%H%M_%S" | tr -d '/\n/'
+ }
+
+ # makes a directory of the name specified and then tries to change the
+ # current directory to that directory.
+ function mcd() {
+ if [ ! -d "$1" ]; then mkdir -p "$1"; fi
+ cd "$1"
+ }
+
+ # locates a process given a search pattern to match in the process list.
+ function psfind() {
+ PID_DUMP="$(mktemp "$TMP/zz_pidlist.XXXXXX")"
+ appropriate_pattern='s/^[-a-zA-Z_0-9][-a-zA-Z_0-9]* *\([0-9][0-9]*\).*$/\1/p'
+ # pattern to use for peeling off the process numbers.
+ extra_flags=
+ # flags to pass to ps if any special ones are needed.
+ if [ "$OS" = "Windows_NT" ]; then
+ # on win32, there is some weirdness to support msys.
+ appropriate_pattern='s/^[ ]*\([0-9][0-9]*\).*$/\1/p'
+ extra_flags=-W
+ fi
+ /bin/ps $extra_flags wuax >$PID_DUMP
+ # remove the first line of the file, search for the pattern the
+ # user wants to find, and just pluck the process ids out of the
+ # results.
+ PIDS_SOUGHT=$(cat $PID_DUMP \
+ | sed -e '1d' \
+ | grep -i "$1" \
+ | sed -n -e "$appropriate_pattern")
+ if [ ! -z "$PIDS_SOUGHT" ]; then echo "$PIDS_SOUGHT"; fi
+ /bin/rm $PID_DUMP
+ }
+
+ # finds all processes matching the pattern specified and shows their full
+ # process listing (whereas psfind just lists process ids).
+ function psa() {
+ p=$(psfind "$1")
+ if [ ! -z "$p" ]; then
+ echo ""
+ echo "Processes containing \"$1\"..."
+ echo ""
+ if [ -n "$IS_DARWIN" ]; then
+ unset fuzil_sentinel
+ for i in $p; do
+ # only print the header the first time.
+ if [ -z "$fuzil_sentinel" ]; then
+ ps $i -w -u
+ else
+ ps $i -w -u | sed -e '1d'
+ fi
+ fuzil_sentinel=true
+ done
+ else
+ # cases besides darwin OS (for macs).
+ extra_flags=
+ if [ "$OS" = "Windows_NT" ]; then
+ # special case for windows.
+ extra_flags=-W
+ ps | head -1
+ for curr in $p; do
+ ps $extra_flags | grep "^ *$curr"
+ done