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