diff options
author | phk <phk@FreeBSD.org> | 1995-02-28 20:52:56 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1995-02-28 20:52:56 +0000 |
commit | 5da4a368b350f59bd862f5a1444a380444015251 (patch) | |
tree | b67c9242568ed94e64f3f21dbd3caf5adc70988b /usr.sbin/ctm | |
parent | 2c8d27f2cbe113d17297dacf8d463b7bd6584f42 (diff) | |
download | FreeBSD-src-5da4a368b350f59bd862f5a1444a380444015251.zip FreeBSD-src-5da4a368b350f59bd862f5a1444a380444015251.tar.gz |
Added lock-files, so we should know if the machine panic'ed in the middle
of an "apply".
Diffstat (limited to 'usr.sbin/ctm')
-rw-r--r-- | usr.sbin/ctm/mkCTM/mkCTM | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/usr.sbin/ctm/mkCTM/mkCTM b/usr.sbin/ctm/mkCTM/mkCTM index 8bc9463..7ba9339 100644 --- a/usr.sbin/ctm/mkCTM/mkCTM +++ b/usr.sbin/ctm/mkCTM/mkCTM @@ -148,6 +148,18 @@ if {$CTMdest == ""} { set CTMdest $CTMSW/../CTM-pub/$CTMname } +# Make sure we only run one at a time... + +set CTMlock Lck.${CTMname}.${CTMdate}.[id process] +exec rm -f ${CTMlock} +exec echo starting > ${CTMlock} +if {[catch "ln $CTMlock LCK.$CTMname" a]} { + puts "Not going, lock exists..." + exec rm -f $CTMlock +} +exec rm -f $CTMlock +set CTMlock LCK.$CTMname + set CTMscratch ${CTMtmp}.tmp while 1 { @@ -156,13 +168,15 @@ while 1 { if {![find_delta $CTMnbr]} { puts "$CTMname delta $CTMnbr doesn't exist..." - # exit 0 + exec rm -f $CTMlock + exit 0 } incr CTMnbr if {[find_delta $CTMnbr]} { puts "$CTMname delta $CTMnbr does already exist..." + exec rm -f $CTMlock exit 0 } @@ -257,12 +271,14 @@ while 1 { if {$damage > $max_damage} { puts "Too much damage: $damage deletes" exec sh -c "rm -f ${CTMtmp}.*" + exec rm -f $CTMlock exit 0 } if {!$changes} { puts "no changes" exec sh -c "rm -f ${CTMtmp}.*" + exec rm -f $CTMlock exit 0 } @@ -284,23 +300,28 @@ while 1 { if {$CTMtest} { puts "testing, stopping now." + exec rm -f $CTMlock exit 0 } if {$CTMapply} { puts "Applying delta" flush stdout + exec echo now applying > $CTMlock exec sh -e -x -c "cd $CTMcopy ; $CTMSW/ctm -v -v -v ${CTMtmp}:${nm}.gz" >&@ stdout + exec echo did apply > $CTMlock } puts "Moving delta" flush stdout exec mv ${CTMtmp}:${nm}.gz $CTMdest/.CTMtmp_${nm}.gz >&@ stdout exec mv $CTMdest/.CTMtmp_${nm}.gz $CTMdest/${nm}.gz >&@ stdout + exec echo moved > $CTMlock if {$CTMmail != ""} { puts "Mailing delta" flush stdout exec $CTMSW/ctm_smail -m 100000 -c 3000000 $CTMdest/${nm}.gz $CTMmail >&@ stdout } + exec echo mailed > $CTMlock # If we did an absolute delta: stop. if {$CTMsuff != ""} break @@ -317,3 +338,4 @@ while 1 { set CTMspecial 1 } puts "done." +exec rm -f $CTMlock |