1# $NetBSD: metalog.subr,v 1.2 2011/02/17 08:41:35 uebayasi Exp $
2
3#
4# xrcs add
5# xrcs update
6# xrcs remove
7#
8#         RCS wrapper for non-interactive scripts.
9#         Excerpted from /etc/security.
10#
11
12xrcs_descr=
13xrcs_msg=
14xrcs_cur=
15xrcs_new=
16
17xrcs_latest()
18{
19          rcslog -rlatest ${xrcs_cur} | \
20          sed -n '/^revision/ { s/^revision //; p; }'
21}
22
23xrcs_retag()
24{
25          previous=$( xrcs_latest 2>/dev/null )
26          if [ -n "$previous" ]; then
27                    rcs -q -Nprevious: ${xrcs_cur}
28          fi
29}
30
31xrcs_unlock()
32{
33          rcs -q -u -U -M ${xrcs_cur}
34}
35
36xrcs_ci()
37{
38          xrcs_retag
39          ci -q -f -u -t-"$xrcs_descr" -m"$xrcs_msg" -Nlatest ${xrcs_cur}
40          rcs -q -kb -U ${xrcs_cur}
41}
42
43xrcs_co()
44{
45          co -q -f -u ${xrcs_cur}
46}
47
48xrcs_init()
49{
50          if [ -f ${xrcs_cur},v ]; then
51                    xrcs_unlock
52          fi
53
54          if [ -f ${xrcs_cur} ]; then
55                    if [ ! -f ${xrcs_cur},v ]; then
56                              xrcs_ci
57                              xrcs_co
58                    fi
59          fi
60}
61
62xrcs_add()
63{
64          xrcs_init
65          cp -p $1 ${xrcs_cur}
66          xrcs_ci
67          xrcs_co
68}
69
70xrcs_update()
71{
72          xrcs_init
73          xrcs_ci
74          xrcs_co
75}
76
77xrcs_remove()
78{
79          xrcs_init
80          cp /dev/null ${xrcs_cur}
81          xrcs_ci
82          rm ${xrcs_cur}
83}
84
85xrcs()
86{
87          eval xrcs_$1
88}
89