Commit Diff


commit - 6174642093bdcef4116ae78dbdf4f2e608494258
commit + 2863ba101f0c9fec34756948e263cd534a3634ee
blob - /dev/null
blob + f6c472b93497da33c0e92f253ef6f7a880bd33dd (mode 755)
--- /dev/null
+++ lp/kill/generic
@@ -0,0 +1,29 @@
+#!/usr/local/plan9/bin/rc
+if (! ~ $DEBUG '') flag x +
+
+cd $LPSPOOL
+if (~ $#* 0) KILLARGS=`{sed 1q};
+if not	KILLARGS=$*;
+	
+if (test -d $LPDEST) {
+	for (i in $KILLARGS) {
+		for (j in `{lpsub sched $SCHED $LPDEST}) {
+			if (test -r $LPDEST/$j^id) {
+				STATLINE=`{cat $LPDEST/$j^id}
+				if (~ $STATLINE(1)^$STATLINE(3) $i)
+					if (rm $LPDEST/$j $LPDEST/$j^id >/dev/null >[1=2])
+						echo $i removed from $LPDEST queue on $THIS_HOST
+			}
+		}
+	}
+}
+if (! ~ $THIS_HOST $DEST_HOST) {
+	@{echo -d$LPDEST -k;echo $KILLARGS;sleep 7} | lpsend.rc $DEST_HOST
+}; if not {
+	if (! ~ $KILLCMD '') {
+		for (i in $KILLARGS) {
+			$KILLCMD $i;
+		}
+	}
+}
+exit ''