[packages/vim] update-source: reorganize code into functions

glen glen at pld-linux.org
Thu Jan 22 11:48:29 CET 2015


commit 9e39b66b73475b7b35c6b6a5f627f5257d325970
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Thu Jan 22 12:47:55 2015 +0200

    update-source: reorganize code into functions

 update-source.sh | 157 +++++++++++++++++++++++++++++++------------------------
 1 file changed, 88 insertions(+), 69 deletions(-)
---
diff --git a/update-source.sh b/update-source.sh
index fd3bf65..1a4a511 100755
--- a/update-source.sh
+++ b/update-source.sh
@@ -10,6 +10,87 @@
 dir=$(dirname "$0")
 cd "$dir"
 
+update_sources() {
+	local ver="$1"
+	local patch msg over file
+
+	echo "Updating $specfile to $ver"
+	patch=${ver#$basever.}
+	if [ -z "$patch" ]; then
+		echo >&2 "Will not set empty patchlevel"
+		exit 1
+	fi
+	sed -i -e "
+		s/^\(%define[ \t]\+patchlevel[ \t]\+\)[0-9]\+\$/\1$patch/
+		s/^\(%define[ \t]\+rel[ \t]\+\)[0-9.]\+\$/\11/
+	" $specfile
+
+	# fetch missing/mismatching files manually. faster than builder script does that
+	md5sum -c sources 2>/dev/null | awk -F: '$NF != " OK" {print $1}' | while read file; do
+		echo "$baseurl/$file"
+	done | wget -nv -i -
+
+	WGET_OPTS="-nv" ../builder -g $specfile
+
+	if [ "$build_package" != 0 ]; then
+		build_package
+	fi
+
+	# autocommit
+	msg=$(mktemp)
+	echo "updated to $ver" > $msg
+	echo "" >> $msg
+	over=$(git diff sources | awk '/^\+[0-9a-f]+/{over=$NF; gsub(/\./, "\\.",over); print over; exit}')
+	sed -ne "/$over/,\$p" README.patches | sed -re 's,^[ 0-9]+ ,,' >> $msg
+	git commit -F $msg $specfile sources
+	rm -f $msg
+}
+
+build_package() {
+	local logfile=$outdir/$pkg.log
+
+	install -d $rpmdir
+
+	# setup custom logfile via $HOME_ETC hack
+	# TODO: just add --logfile support for builder
+	cat > $outdir/.builderrc <<-EOF
+		if [ -n "$HOME_ETC" ]; then
+			. "$HOME_ETC/.builderrc"
+		elif [ -r ~/.builderrc ]; then
+			. ~/.builderrc
+		fi
+		LOGFILE='$logfile'
+	EOF
+
+	> $logfile
+	HOME_ETC=$outdir \
+		../builder -bb --clean \
+		--define "_unpackaged_files_terminate_build 1" \
+		--define '_enable_debug_packages 0' \
+		--define "_builddir $outdir" \
+		--define "_rpmdir $rpmdir" \
+		$specfile || {
+		echo "Package build failed" >&2
+		tail -n 1000 $logfile >&2
+		exit 1
+	}
+	echo >&2 "Package build OK"
+
+	if [ "$publish_packages" ] && [ "$(ls $rpmdir/*.rpm 2>/dev/null)" ]; then
+		publish_packages
+	fi
+}
+
+publish_packages() {
+	local rpmdest=~/public_html/$dist/$arch/
+
+	install -d $rpmdest
+	umask 022
+	chmod 644 $rpmdir/*.rpm
+	mv -v $rpmdir/*.rpm $rpmdest/
+	poldek --cachedir=$HOME/tmp --mkidx -s $rpmdest/ --mt=pndir
+}
+
 # abort on errors
 set -e
 
@@ -26,6 +107,12 @@ basever=7.4
 baseurl=ftp://ftp.vim.org/pub/editors/vim/patches/$basever
 sources=ftp://ftp.vim.org/pub/editors/vim/patches/$basever/MD5SUMS
 
+# setup some paths
+dist=$(rpm -E %{pld_release})
+arch=$(rpm -E %{_host_cpu})
+outdir=$(readlink -f $dir)/BUILD-$dist-$arch
+rpmdir=$outdir/RPMS
+
 status=$(git status --porcelain sources)
 if [ "$status" ]; then
 	echo >&2 "WARNING: sources status not clean; commit or stash any pending changes"
@@ -50,75 +137,7 @@ curpatch=$(awk '/^%define[ 	]+patchlevel[ 	]+/{print $NF}' $specfile)
 curver=$basever.$curpatch
 
 if [ "$curver" != "$ver" ]; then
-	echo "Updating $specfile to $ver"
-	patch=${ver#$basever.}
-	if [ -z "$patch" ]; then
-		echo >&2 "Will not set empty patchlevel"
-		exit 1
-	fi
-	sed -i -e "
-		s/^\(%define[ \t]\+patchlevel[ \t]\+\)[0-9]\+\$/\1$patch/
-		s/^\(%define[ \t]\+rel[ \t]\+\)[0-9.]\+\$/\11/
-	" $specfile
-
-	# fetch missing/mismatching files manually. faster than builder script does that
-	md5sum -c sources 2>/dev/null | awk -F: '$NF != " OK" {print $1}' | while read file; do
-		echo "$baseurl/$file"
-	done | wget -nv -i -
-
-	WGET_OPTS="-nv" ../builder -g $specfile
-
-	if [ "$build_package" != 0 ]; then
-		dist=$(rpm -E %{pld_release})
-		arch=$(rpm -E %{_host_cpu})
-		outdir=$(readlink -f $dir)/BUILD-$dist-$arch
-		logfile=$outdir/$pkg.log
-		rpmdir=$outdir/RPMS
-		install -d $rpmdir
-
-		# setup custom logfile via $HOME_ETC hack
-		# TODO: just add --logfile support for builder
-		cat > $outdir/.builderrc <<-EOF
-			if [ -n "$HOME_ETC" ]; then
-				. "$HOME_ETC/.builderrc"
-			elif [ -r ~/.builderrc ]; then
-				. ~/.builderrc
-			fi
-			LOGFILE='$logfile'
-		EOF
-
-		> $logfile
-		HOME_ETC=$outdir \
-			../builder -bb --clean \
-			--define "_unpackaged_files_terminate_build 1" \
-			--define '_enable_debug_packages 0' \
-			--define "_builddir $outdir" \
-			--define "_rpmdir $rpmdir" \
-			$specfile || {
-			echo "Package build failed" >&2
-			tail -n 1000 $logfile >&2
-			exit 1
-		}
-		echo >&2 "Package build OK"
-
-		rpmdest=~/public_html/$dist/$arch/
-		if [ "$publish_packages" ] && [ "$(ls $rpmdir/*.rpm 2>/dev/null)" ]; then
-			install -d $rpmdest
-			umask 022
-			chmod 644 $rpmdir/*.rpm
-			mv -v $rpmdir/*.rpm $rpmdest/
-			poldek --cachedir=$HOME/tmp --mkidx -s $rpmdest/ --mt=pndir
-		fi
-	fi
-
-	# autocommit
-	msg=$(mktemp)
-	echo "updated to $ver" > $msg
-	echo "" >> $msg
-	over=$(git diff sources | awk '/^\+[0-9a-f]+/{over=$NF; gsub(/\./, "\\.",over); print over; exit}')
-	sed -ne "/$over/,\$p" README.patches | sed -re 's,^[ 0-9]+ ,,' >> $msg
-	git commit -F $msg $specfile sources
-	rm -f $msg
+	update_sources "$ver"
 else
 	echo "$specfile already up to $ver"
 fi
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/vim.git/commitdiff/9e39b66b73475b7b35c6b6a5f627f5257d325970



More information about the pld-cvs-commit mailing list