[packages/chromium-browser/DEVEL] use flock for locking

glen glen at pld-linux.org
Sun Mar 3 18:47:38 CET 2013


commit f4176835de8b9a2ffbf00bc0e2755abc4907c7c9
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Sun Mar 3 19:47:12 2013 +0200

    use flock for locking

 get-source.sh | 135 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 67 insertions(+), 68 deletions(-)
---
diff --git a/get-source.sh b/get-source.sh
index 7da9071..0219e41 100755
--- a/get-source.sh
+++ b/get-source.sh
@@ -6,8 +6,8 @@ CHANNEL=${1:-beta}
 
 CHANNELS_URL=http://omahaproxy.appspot.com/all
 PACKAGE_NAME=chromium-browser
-WORK_DIR=$(cd $(dirname "$0"); pwd)
-CHROMIUM=$HOME/svn/$PACKAGE_NAME-$CHANNEL
+PROGRAM=${0##*/}
+WORK_DIR=$(cd "$(dirname "$0")"; pwd)
 LOCKFILE=$WORK_DIR/$PACKAGE_NAME-$CHANNEL.lock
 OFFICIAL_URL=http://commondatastorage.googleapis.com/chromium-browser-official
 DIST_DIR=$HOME/public_html/chromium-browser/src/$CHANNEL
@@ -33,90 +33,89 @@ fi
 
 set -x
 
-# consider lockfile stale after 3h
-if ! lockfile -l 10800 $LOCKFILE; then
-	exit 1
-fi
+(
+	flock -n 9 || { echo "$PROGRAM: locked"; exit 1; }
 
-trap "rm -f $LOCKFILE" EXIT
+	TMP_DIR=$(mktemp -d $WORK_DIR/$PACKAGE_NAME-$CHANNEL-$VERSION-_XXXXXX)
+	LOGFILE=$TMP_DIR/$PACKAGE_NAME-$VERSION.log
 
-TMP_DIR=$(mktemp -d $WORK_DIR/$PACKAGE_NAME-$CHANNEL-$VERSION-_XXXXXX)
-LOGFILE=$TMP_DIR/$PACKAGE_NAME-$VERSION.log
+	(
+	cd "$TMP_DIR"
+	if [ "$CHANNEL" != "stable" ]; then
+		srctarball=$PACKAGE_NAME-$VERSION.tar.xz
+		wget -c -nv -O $srctarball "$OFFICIAL_URL/chromium-$VERSION.tar.xz"
+	else
+		srctarball=$PACKAGE_NAME-$VERSION.tar.bz2
+		wget -c -nv -O $srctarball "$OFFICIAL_URL/chromium-$VERSION.tar.bz2"
+	fi
 
-(
-cd "$TMP_DIR"
-if [ "$CHANNEL" != "stable" ]; then
-	srctarball=$PACKAGE_NAME-$VERSION.tar.xz
-	wget -c -nv -O $srctarball "$OFFICIAL_URL/chromium-$VERSION.tar.xz"
-else
-	srctarball=$PACKAGE_NAME-$VERSION.tar.bz2
-	wget -c -nv -O $srctarball "$OFFICIAL_URL/chromium-$VERSION.tar.bz2"
-fi
+	# repackage cleaned up tarball
+	test -d $PACKAGE_NAME-$VERSION || {
+		tar xvf $srctarball
+		install -d $PACKAGE_NAME-$VERSION
+		# relocate to src dir (needed to workaround some gyp bug)
+		mv chromium-$VERSION $PACKAGE_NAME-$VERSION/src
+	}
 
-# repackage cleaned up tarball
-test -d $PACKAGE_NAME-$VERSION || {
-	tar xvf $srctarball
-	install -d $PACKAGE_NAME-$VERSION
-	# relocate to src dir (needed to workaround some gyp bug)
-	mv chromium-$VERSION $PACKAGE_NAME-$VERSION/src
-}
+	ls -lh $srctarball
+	rm $srctarball
 
-ls -lh $srctarball
-rm $srctarball
+	cd $PACKAGE_NAME-$VERSION/src
+	du -sh .
 
-cd $PACKAGE_NAME-$VERSION/src
-du -sh .
+	awk 'NR=1 {print $NF; exit}' v8/ChangeLog | tee -a v8.txt
 
-awk 'NR=1 {print $NF; exit}' v8/ChangeLog | tee -a v8.txt
+	if [ "$CHANNEL" != "dev" ]; then
+		sh -x $WORK_DIR/clean-source.sh emptydirs=1 v8=0 libvpx=0 mesa=0 re2=0
+	fi
 
-if [ "$CHANNEL" != "dev" ]; then
-	sh -x $WORK_DIR/clean-source.sh emptydirs=1 v8=0 libvpx=0 mesa=0 re2=0
-fi
+	# do not keep REMOVED*.txt in tarball. they are visible in .log anyway
+	rm -vf REMOVED-*.txt
 
-# do not keep REMOVED*.txt in tarball. they are visible in .log anyway
-rm -vf REMOVED-*.txt
+	du -sh .
 
-du -sh .
+	# add LASTCHANGE info, take "branch_revision" item
+	svnver=$(wget -qO - "$CHANNELS_URL?os=linux&channel=$CHANNEL" | awk -F, 'NR > 1{print $8}')
+	echo "$svnver" > build/LASTCHANGE.in
 
-# add LASTCHANGE info, take "branch_revision" item
-svnver=$(wget -qO - "$CHANNELS_URL?os=linux&channel=$CHANNEL" | awk -F, 'NR > 1{print $8}')
-echo "$svnver" > build/LASTCHANGE.in
+	cd ../..
 
-cd ../..
+	tarball=$PACKAGE_NAME-$VERSION.tar.$EXT
+	# xz -9 OOM's on carme
+	XZ_OPT=-e8 tar -caf $tarball $PACKAGE_NAME-$VERSION
+	ls -lh $tarball
 
-tarball=$PACKAGE_NAME-$VERSION.tar.$EXT
-# xz -9 OOM's on carme
-XZ_OPT=-e8 tar -caf $tarball $PACKAGE_NAME-$VERSION
-ls -lh $tarball
+	rm -rf $PACKAGE_NAME-$VERSION
 
-rm -rf $PACKAGE_NAME-$VERSION
+	chmod 644 $tarball
+	mv $tarball $DIST_DIR
 
-chmod 644 $tarball
-mv $tarball $DIST_DIR
+	) > $LOGFILE 2>&1
 
-) > $LOGFILE 2>&1
+	chmod 644 $LOGFILE
+	mv $LOGFILE $DIST_DIR
 
-chmod 644 $LOGFILE
-mv $LOGFILE $DIST_DIR
+	rm -rf $TMP_DIR
 
-rm -rf $TMP_DIR
+	# create diff patches
+	BASEVER=${VERSION%.*}.0
+	if [ -e $DIST_DIR/$PACKAGE_NAME-$BASEVER.tar.$EXT ]; then
+		base=$(readlink -f $DIST_DIR/$PACKAGE_NAME-$BASEVER.tar.$EXT)
+		current=$DIST_DIR/$PACKAGE_NAME-$VERSION.tar.$EXT
+		sh -x $WORK_DIR/make-diff-patch.sh $base $current
+		mv $PACKAGE_NAME-$VERSION.patch.xz $DIST_DIR
+		# for beta and dev channels, move the diff pointer
+		if [ "$CHANNEL" != "stable" ]; then
+			ln -sf $PACKAGE_NAME-$VERSION.tar.$EXT $DIST_DIR/$PACKAGE_NAME-$BASEVER.tar.$EXT
+		fi
+	fi
 
-# create diff patches
-BASEVER=${VERSION%.*}.0
-if [ -e $DIST_DIR/$PACKAGE_NAME-$BASEVER.tar.$EXT ]; then
-	base=$(readlink -f $DIST_DIR/$PACKAGE_NAME-$BASEVER.tar.$EXT)
-	current=$DIST_DIR/$PACKAGE_NAME-$VERSION.tar.$EXT
-	sh -x $WORK_DIR/make-diff-patch.sh $base $current
-	mv $PACKAGE_NAME-$VERSION.patch.xz $DIST_DIR
-	# for beta and dev channels, move the diff pointer
-	if [ "$CHANNEL" != "stable" ]; then
-		ln -sf $PACKAGE_NAME-$VERSION.tar.$EXT $DIST_DIR/$PACKAGE_NAME-$BASEVER.tar.$EXT
+	# try updating spec and build it as well
+	if [ -x $WORK_DIR/update-source.sh ]; then
+		build_package=1 \
+		publish_packages=1 \
+		sh -x $WORK_DIR/update-source.sh
 	fi
-fi
 
-# try updating spec and build it as well
-if [ -x $WORK_DIR/update-source.sh ]; then
-	build_package=1 \
-	publish_packages=1 \
-	sh -x $WORK_DIR/update-source.sh
-fi
+	rm $LOCKFILE
+) 9>$LOCKFILE
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/chromium-browser.git/commitdiff/66a2b81c650b2dc2c02f4b75d38ed66cf05354c0



More information about the pld-cvs-commit mailing list