summaryrefslogtreecommitdiffstats
path: root/files/scripts/update-fullfiletimelist
diff options
context:
space:
mode:
authorKevin Fenzi <kevin@scrye.com>2016-05-27 22:05:41 +0000
committerKevin Fenzi <kevin@scrye.com>2016-05-27 22:05:41 +0000
commitdaa00a39b136e5f1617af442f8f69f143eb7a733 (patch)
treedacd969b5276787db5b3199abecc0e89e0d931fc /files/scripts/update-fullfiletimelist
parent073e417e4c21bfcb25cc4101b95cabd15a09e01f (diff)
Put new create-filelist in scripts so we can use it all the places we need.
Diffstat (limited to 'files/scripts/update-fullfiletimelist')
-rwxr-xr-xfiles/scripts/update-fullfiletimelist43
1 files changed, 27 insertions, 16 deletions
diff --git a/files/scripts/update-fullfiletimelist b/files/scripts/update-fullfiletimelist
index ddb481dcd..04e6e0b58 100755
--- a/files/scripts/update-fullfiletimelist
+++ b/files/scripts/update-fullfiletimelist
@@ -1,22 +1,33 @@
-#!/bin/bash
-
-# currently runs on secondary01 from cron to update alt
+#!/bin/sh
MOD=$1
[ -z "$MOD" ] && {
- echo "usage: $0 <module>"
- exit 1
+ echo "usage: $0 <module>"
+ exit 2
}
-# This is the new list with timestamps
+TOPD=/srv/pub/
+FILELIST=fullfilelist
+TIMELIST=fullfiletimelist-$MOD
+LOCKFILE=.lock.$TIMELIST
+CREATE=/usr/local/bin/create-filelist
+
+(
+ flock -n 9 || exit 1
+
+ TMPD=$(mktemp -d -t create-filelist.XXXXXXXXXX)
+ trap "rm -rf $TMPD" EXIT
+ cd $TMPD
+
+ $CREATE -c -s -d $TOPD/$MOD -f $FILELIST -t $TIMELIST
+ if diff -q $FILELIST $TOPD/$MOD/$FILELIST > /dev/null; then
+ mv $FILELIST $TOPD/$MOD/$FILELIST
+ chmod 0644 $TOPD/$MOD/$FILELIST
+ fi
+
+ if diff -q $TIMELIST $TOPD/$MOD/$TIMELIST > /dev/null; then
+ mv $TIMELIST $TOPD/$MOD/$TIMELIST
+ chmod 0644 $TOPD/$MOD/$TIMELIST
+ fi
-TMPFILE=$(mktemp -p /tmp/)
-pushd /srv/pub/$MOD > /dev/null
-/usr/local/bin/create-filelist . > $TMPFILE
-if diff $TMPFILE fullfiletimelist > /dev/null; then
- rm -f $TMPFILE
-else
- mv $TMPFILE fullfiletimelist
- chmod 0644 fullfiletimelist
-fi
-popd > /dev/null
+) 9>$LOCKFILE