#!/usr/bin/perl
#
# SPDX-FileCopyrightText: 1996 Brian R. Gaeke
# SPDX-License-Identifier: BSD-4-Clause
#
# Additionally:
#
# This software is provided without support and without any obligation
# on the part of Brian R. Gaeke to assist in its use, correction,
# modification or enhancement.
#
#######################################################################
#
# this is atudel, version 2, by Brian R. Gaeke <brg@dgate.org>
#

require "getopts.pl";
&Getopts('v');
$username = shift(@ARGV);
&usage unless $username;

sub usage
{
	print STDERR "atudel - remove all at jobs owned by a user\n";
	print STDERR "usage: $0 [-v] username\n";
	exit(1);
}

# odd. unless getpwnam($uname) doesn't seem to work for $uname eq "root" on
# my linux system. but this does.
die "user $username does not exist; stopping"
	unless defined(getpwnam($username));

print "searching for at jobs owned by user $username ..." if $opt_v;

chdir "/var/spool/atjobs" ||
	die "can't chdir to /var/spool/atjobs: $!\nstopping";
opendir(DIR,".") || die "can't opendir(/var/spool/atjobs): $!\nstopping";
@files = grep(!/^\./,grep(-f,readdir(DIR)));
closedir DIR;

foreach $x (@files)
{
	$owner = (getpwuid((stat($x))[4]))[0];
	push(@nuke_bait,$x) if $owner eq $username;
}

if (@nuke_bait)
{
	print "removed jobIDs: @{nuke_bait}.\n" if $opt_v;
	unlink @nuke_bait;
}
elsif ($opt_v)
{
	print "\n";
}

exit 0;