#!/bin/sh -efu

. girar-sh-functions
PROG='girar-task delsub'

usage()
{
	[ -z "$*" ] || message "$*"
	echo >&2 "usage: $PROG <task_id> <subtask_number>"
	exit 1
}

if [ "${1-}" = '--help' ]; then
	usage
fi

if [ "$#" -gt 2 ]; then
	usage 'Too many arguments.'
fi

if [ "$#" -lt 2 ]; then
	usage 'Not enough arguments.'
fi

id=$(PROG="$PROG" girar-task-find-current "$1"); shift
num="$1"; shift

enable -f /usr/lib/bash/lockf lockf
cd "$GB_TASKS/$id"
# obtain an exclusive lock on the TASKS structure
builtin lockf -n . ||
	fatal "task #$id is locked"

[ -w gears ] ||
	fatal 'gears: Permission denied'

check_task_modifiable

set -- $(gear_nums)
for i; do
	[ "$i" = "$num" ] || continue
	[ -w "gears/$i" ] ||
		fatal "gears/$i: Permission denied"
	logger -t "$PROG" "user=$GIRAR_USER task=$id subtask=$i"
	trap '' HUP INT QUIT PIPE TERM
	rm -rf acl/$i build/$i
	# del/copy
	rm -f gears/$i/package gears/$i/copy_repo
	# srpm
	rm -f gears/$i/srpm gears/$i/nevr
	# gear
	rm -f gears/$i/dir gears/$i/tag_name gears/$i/tag_id gears/$i/tag_author
	rm -rf gears/$i/git
	# girar-builder
	rm -f gears/$i/pkg.tar
	girar-task-change-state "$id" NEW
	trap - HUP INT QUIT PIPE TERM
	echo >&2 "task #$id: removed subtask #$i"
	exit
done
fatal "task #$id: subtask #$num not found"
