packages: rpm-build-tools/update.sh (NEW) - script for updating rpm-build-t...
pawelz
pawelz at pld-linux.org
Sat Apr 3 15:36:46 CEST 2010
Author: pawelz Date: Sat Apr 3 13:36:46 2010 GMT
Module: packages Tag: HEAD
---- Log message:
- script for updating rpm-build-tools
---- Files affected:
packages/rpm-build-tools:
update.sh (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: packages/rpm-build-tools/update.sh
diff -u /dev/null packages/rpm-build-tools/update.sh:1.1
--- /dev/null Sat Apr 3 15:36:46 2010
+++ packages/rpm-build-tools/update.sh Sat Apr 3 15:36:41 2010
@@ -0,0 +1,98 @@
+#!/bin/sh -e
+
+# Usage:
+# Just run this script in your rpm/packages/rpm-build-tools directory.
+
+die() {
+ >&2 printf '*** '${1:+"$@\n"}
+ return 1
+}
+
+msg() {
+ printf ' '${1:+"$@\n"}
+}
+
+[ -f "/etc/shrc.d/rpm-build.sh" ] || die "Install rpm-build-macros package"
+. /etc/shrc.d/rpm-build.sh
+
+src[0]=adapter
+src[1]=adapter.awk
+src[2]=builder
+src[3]=pldnotify.awk
+src[4]=rpm-build-tools.spec
+
+dst[0]=adapter.sh
+dst[1]=${src[1]}
+dst[2]=builder.sh
+dst[3]=${src[3]}
+
+#
+# Checkout on involved files and check for local modifications.
+#
+
+for I in 0 1 2 3; do
+ msg "Checking out packages/rpm-build-tools/${dst[$I]} file."
+ rs=$(cvs up ${dst[$I]})
+ case "$rs" in
+ "M "*) die "You have local modifications in packages/rpm-build-tools/${dst[$I]} file.\nCommit it first." ;;
+ esac
+done
+cd ..;
+for I in 0 1 2 3; do
+ msg "Checking out packages/${src[$I]} file."
+ rs=$(cvs up ${src[$I]})
+ case "$rs" in
+ "M "*) die "You have local modifications in packages/${src[$I]} file.\nCommit it first." ;;
+ esac
+done
+
+#
+# Check working revisions of src files
+#
+
+msg "Checking revisions."
+for I in 0 1 2 3; do
+ rev[$I]=$(cvs stat ${src[$I]} \
+ | sed -ne 's/^[[:blank:]]*Working revision:[[:blank:]]*\([[:digit:]]\.[[:digit:]]\+\).*/\1/p')
+done
+
+>/dev/null cd -
+
+#
+# Check wich dst files need updating, update them and prepare msglog
+#
+
+LOG=""
+msg "Checking wich files need update."
+for I in 0 1 2 3; do
+ if [ "$(diff -q ../${src[$I]} ${dst[$I]})" ]; then
+ cat ../${src[$I]} > ${dst[$I]}
+ LOG="$LOG- ${dst[$I]} up to ${rev[$I]}\n"
+ fi
+done
+
+[ "$LOG" ] || die "Nothing to update!"
+
+minor_ver=$(sed -n 's/^\Version:.*\.\([[:digit:]]\+\)/\1/p' rpm-build-tools.spec)
+minor_ver=$(($minor_ver + 1))
+sed -i 's/^\(Version:.*\.\)\([[:digit:]]\+\)$/\1'$minor_ver'/' rpm-build-tools.spec
+sed -i 's/^Release:.*$/Release: 1/' rpm-build-tools.spec
+ver=$(sed -n 's/^\Version:[[:blank:]]\(.*\)$/\1/p' rpm-build-tools.spec)
+LOG="- up to $ver\n$LOG"
+
+#
+# Show changes and ask user for confirmation.
+#
+
+cvs di -u | diffcol | ${PAGER:-'less -r'}
+
+printf "Commit log:\n$LOG\nCommit (Yes, No)? "
+read ans
+case "$ans" in
+ [yY])
+ cvs ci -m "$LOG" ${dst[0]} ${dst[1]} ${dst[2]} ${dst[3]} ;;
+ *)
+ msg ":(" ;;
+esac
+
+# vim: tabstop=2
================================================================
More information about the pld-cvs-commit
mailing list