metalog.subr revision 1.2.2.2 1 # $NetBSD: metalog.subr,v 1.2.2.2 2011/02/17 11:57:17 bouyer 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
12 xrcs_descr=
13 xrcs_msg=
14 xrcs_cur=
15 xrcs_new=
16
17 xrcs_latest()
18 {
19 rcslog -rlatest ${xrcs_cur} | \
20 sed -n '/^revision/ { s/^revision //; p; }'
21 }
22
23 xrcs_retag()
24 {
25 previous=$( xrcs_latest 2>/dev/null )
26 if [ -n "$previous" ]; then
27 rcs -q -Nprevious: ${xrcs_cur}
28 fi
29 }
30
31 xrcs_unlock()
32 {
33 rcs -q -u -U -M ${xrcs_cur}
34 }
35
36 xrcs_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
43 xrcs_co()
44 {
45 co -q -f -u ${xrcs_cur}
46 }
47
48 xrcs_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
62 xrcs_add()
63 {
64 xrcs_init
65 cp -p $1 ${xrcs_cur}
66 xrcs_ci
67 xrcs_co
68 }
69
70 xrcs_update()
71 {
72 xrcs_init
73 xrcs_ci
74 xrcs_co
75 }
76
77 xrcs_remove()
78 {
79 xrcs_init
80 cp /dev/null ${xrcs_cur}
81 xrcs_ci
82 rm ${xrcs_cur}
83 }
84
85 xrcs()
86 {
87 eval xrcs_$1
88 }
89