#!/bin/sh

I_WANT_A_BROKEN_PS=yes
export I_WANT_A_BROKEN_PS
all=no
if [ "x$1" = "x-a" ]
then
	all=yes
fi
export all

cat >/tmp/awk.xxx$$ <<'!'
BEGIN{
	state["D"] = "Spinwait";
	state["I"] = "Idle";
	state["J"] = "Jail";
	state["R"] = "Ready";
	state["S"] = "Sleep";
	state["T"] = "Stopped";
	state["Z"] = "Zombie";
	state["W"] = "Fault";
	state["X"] = "Moribund";
}

function statestr(s)
{
	t = state[substr(s, 1, 1)];
	if(t == "")
		return s;
	return t;
}

# rsc  36706   starttime 0:00.17  1076 Is+  -bash (bash)
{
	i=1
	user=$i; i++
	pid=$i; i++
	start=$i; i++
	if(start ~ /^[A-Z][a-z][a-z]$/){
		start = start "-" $i; i++
	}
	cputime=$i; i++
	mem=$i; i++
	stat=$i; i++
	cmd=$i; i++	
	if(ENVIRON["all"] == "yes"){
		for(; i<=NF; i++)
			cmd = cmd " " $i;
	}else{
		sub(/.*\//, "", cmd);
		sub(/:$/, "", cmd);
		sub(/^-/, "", cmd);
		s = " " cmd;
	}
	sub(/\.[0-9][0-9]$/, "", cputime);	# drop .hundredths of second
	if(cputime ~ /..:..:../){	# convert hh:mm:ss into mm:ss
		split(cputime, a, ":");
		cputime = sprintf("%d:%02d", a[1]*60+a[2], a[3]);
	}
	if(start ~ /..:..:../){	# drop :ss
		sub(/:..$/, "", start);
	}
	printf("%-8s  %11d %8s %8s %8dK %-8s %s\n",
		user, pid, start, cputime, mem, statestr(stat), cmd);
}
!

/bin/ps -axww -o 'user,pid,start,time,vsz,stat,command' | sed 1d |
	awk -f /tmp/awk.xxx$$ | sort -n +1

rm -f /tmp/awk.xxx$$

