]> git.pld-linux.org Git - packages/vim.git/commitdiff
update-source: reorganize code into functions
authorElan Ruusamäe <glen@delfi.ee>
Thu, 22 Jan 2015 10:47:55 +0000 (12:47 +0200)
committerElan Ruusamäe <glen@delfi.ee>
Thu, 22 Jan 2015 10:47:55 +0000 (12:47 +0200)
update-source.sh

index fd3bf65647f0556cce65a9fd2b0bd1d4d363f672..1a4a51198d8a77a455dd2ca0cb9a7a841b3d7187 100755 (executable)
 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
This page took 0.109929 seconds and 4 git commands to generate.