# $NetBSD: metalog.subr,v 1.2 2011/02/17 08:41:35 uebayasi Exp $

#
# xrcs add
# xrcs update
# xrcs remove
#
#       RCS wrapper for non-interactive scripts.
#       Excerpted from /etc/security.
#

xrcs_descr=
xrcs_msg=
xrcs_cur=
xrcs_new=

xrcs_latest()
{
       rcslog -rlatest ${xrcs_cur} | \
       sed -n '/^revision/ { s/^revision //; p; }'
}

xrcs_retag()
{
       previous=$( xrcs_latest 2>/dev/null )
       if [ -n "$previous" ]; then
               rcs -q -Nprevious: ${xrcs_cur}
       fi
}

xrcs_unlock()
{
       rcs -q -u -U -M ${xrcs_cur}
}

xrcs_ci()
{
       xrcs_retag
       ci -q -f -u -t-"$xrcs_descr" -m"$xrcs_msg" -Nlatest ${xrcs_cur}
       rcs -q -kb -U ${xrcs_cur}
}

xrcs_co()
{
       co -q -f -u ${xrcs_cur}
}

xrcs_init()
{
       if [ -f ${xrcs_cur},v ]; then
               xrcs_unlock
       fi

       if [ -f ${xrcs_cur} ]; then
               if [ ! -f ${xrcs_cur},v ]; then
                       xrcs_ci
                       xrcs_co
               fi
       fi
}

xrcs_add()
{
       xrcs_init
       cp -p $1 ${xrcs_cur}
       xrcs_ci
       xrcs_co
}

xrcs_update()
{
       xrcs_init
       xrcs_ci
       xrcs_co
}

xrcs_remove()
{
       xrcs_init
       cp /dev/null ${xrcs_cur}
       xrcs_ci
       rm ${xrcs_cur}
}

xrcs()
{
       eval xrcs_$1
}