#!/bin/sh

. $(dirname $0)/adc.common-functions

# options settable in adc.common-functions are
#   TRASH_CAN -- where the trashed repos are moved.  Can be anywhere that the
#       hosting user has write access to.  Does not have to be (and ideally
#       should NOT be) inside $GL_REPO_BASE_ABS (but see note below)
#   TRASH_SUFFIX -- a timestamp, (ideally and by default), to be
#       suffixed to the moved repo

# helper ADCs: list-trash, restore

# NOTE: although I would NOT advise it in the interests of keeping things
# simple, it *is* possible to have even deleted repos be *directly* accessible
# via normal gitolite mechanisms (clone, etc).  Here's how:
#   (1) make TRASH_CAN point somewhere *within* $REPO_BASE
#   (2) change TRASH_SUFFIX to something that has a .git at the end, like:
#           TRASH_SUFFIX=`date +%Y-%m-%d-%H-%M-%S`.git
#   (3) set ACL rules in conf/gitolite.conf for repos named
#           deleted/foo/sitaram/bar.*

# cd to repo base and make sure arg1 is a valid repo (also sets $repo)
valid_owned_repo $1

mkdir -p $TRASH_CAN/$repo 2>/dev/null || die "failed creating directory in trashcan"
[ -d $TRASH_CAN/$repo/$TRASH_SUFFIX ] && die try again in a few seconds
mv $repo.git $TRASH_CAN/$repo/$TRASH_SUFFIX
echo "$repo moved to trashcan.  Please run the 'help' adc for more info."
