diff mbox series

[12/13] UBUNTU: [Packaging] generate: update-version -- update to latest version

Message ID 20220916114642.2953019-13-apw@canonical.com
State New
Headers show
Series [01/13] UBUNTU: [Packaging] generate-depends: relocate to debian/scripts | expand

Commit Message

Andy Whitcroft Sept. 16, 2022, 11:46 a.m. UTC
Signed-off-by: Andy Whitcroft <apw@canonical.com>
---
 update-version | 69 ++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 58 insertions(+), 11 deletions(-)
diff mbox series

Patch

diff --git a/update-version b/update-version
index 47103ae..02e1626 100755
--- a/update-version
+++ b/update-version
@@ -1,21 +1,50 @@ 
 #!/bin/bash
 
+here=$(dirname $(readlink -f "$0"))
+
 tag_prefix=`dpkg-parsechangelog -S Source | sed 's/linux-signed/Ubuntu/'`-
 
-if [ "$#" -ne 1 ]; then
-	echo "Usage: $0 <linux-source-directory>" 1>&2
-	exit 1
-fi
-master_dir="$1"
+commit=:
+no_update=false
+master_version=
+master_dir=
+while :
+do
+	if [ "$1" = "--commit" ]; then
+		shift
+		commit=
+
+	elif [ "$1" = "--no-update" ]; then
+		shift
+		no_update=true
+
+	elif [ "$1" = "--master-version" ]; then
+		master_version="$2"
+		shift 2
 
-# Work out the master kernel version.
-if [ -f "$master_dir/debian/debian.env" ]; then
-	branch=`sed -ne 's/DEBIAN=//p' <"$master_dir/debian/debian.env"`
-	changelog="-l$branch/changelog"
+	else
+		break
+	fi
+done
+
+if [ "$master_version" = "" ]; then
+	if [ "$#" -ne 1 ]; then
+		echo "Usage: $0 <linux-source-directory>" 1>&2
+		exit 1
+	fi
+	master_dir="$1"
+
+	# Work out the master kernel version.
+	if [ -f "$master_dir/debian/debian.env" ]; then
+		branch=`sed -ne 's/DEBIAN=//p' <"$master_dir/debian/debian.env"`
+		changelog="-l$branch/changelog"
+	else
+		changelog=""
+	fi
+	master_version=`(cd "$master_dir" && LC_ALL=C dpkg-parsechangelog -SVersion $changelog)`
 else
-	changelog=""
+	no_update=true
 fi
-master_version=`(cd "$master_dir" && LC_ALL=C dpkg-parsechangelog -S Version $changelog)`
 
 # Work out our current version taking into account closed sections.
 here_series=$( LC_ALL=C dpkg-parsechangelog -S Distribution )
@@ -34,6 +63,22 @@  if [ "$count" != 1 ]; then
         exit 1
 fi
 
+update_file()
+{
+	local src="$1"
+	local dst="$2"
+	cp -p "$src" "$dst" || exit 1
+	if ! git diff --exit-code -- "$dst" >/dev/null; then
+		git commit -m "UBUNTU: $dst -- update from master" -s -- "$dst"
+	else
+		echo "$dst: no changes from master"
+	fi
+}
+
+# Update things from the primary package.
+if [ "$no_update" = 'false' ]; then
+	update_file "$master_dir/$branch/tracking-bug" "debian/tracking-bug"
+fi
 #echo "here_version<$here_version>"
 #echo "master_version<$master_version>"
 
@@ -81,5 +126,7 @@  dch --distribution "$here_series" --release ''
 
 # Emit final closing commands.
 echo "git commit -s -m 'UBUNTU: $tag_prefix$here_newversion' debian/changelog"
+$commit git commit -s -m "UBUNTU: $tag_prefix$here_newversion" debian/changelog
 here_tagversion=$( echo "$tag_prefix$here_newversion" | sed -e 's/~/_/g' )
 echo "git tag -s -m '$tag_prefix$here_newversion' '$here_tagversion'"
+$commit git tag -s -m "$tag_prefix$here_newversion" "$here_tagversion"