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 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