summaryrefslogtreecommitdiff
path: root/distrib/sets/metalog.subr
blob: 525b240628132eb0010214ac0dcbd1fb9a59d0c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# $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
}