summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ctm/mkCTM
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1995-02-28 20:52:56 +0000
committerphk <phk@FreeBSD.org>1995-02-28 20:52:56 +0000
commit5da4a368b350f59bd862f5a1444a380444015251 (patch)
treeb67c9242568ed94e64f3f21dbd3caf5adc70988b /usr.sbin/ctm/mkCTM
parent2c8d27f2cbe113d17297dacf8d463b7bd6584f42 (diff)
downloadFreeBSD-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/mkCTM')
-rw-r--r--usr.sbin/ctm/mkCTM/mkCTM24
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
OpenPOWER on IntegriCloud