diff mbox series

[kteam-tools,v2] NEW: stable/update-kuc-sru-dates

Message ID 1536141488-16331-1-git-send-email-stefan.bader@canonical.com
State New
Headers show
Series [kteam-tools,v2] NEW: stable/update-kuc-sru-dates | expand

Commit Message

Stefan Bader Sept. 5, 2018, 9:58 a.m. UTC
Adds a new shell script which updates the entry web page
kernel.ubuntu.com/index.html with a new set of dates and
commits the result (if differing to before).

Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
---

If anybody has a better name, I do not insist on the current one.
The script itself takes the SRU cycle date and passes it into
gen-sru-announce --html. Then takes that output and inserts it
between the repective markers in the kernel.ubuntu.com/index.html
file.
The path is found relative to the script path. To make this work
either the stable directory has to be in the PATH environment or
a softlink pointing to it must be present in some path, or the
script is called with a full path.

-Stefan

v2: replaced trap ERR by trap EXIT and remove manual cleanup code

 stable/update-kuc-sru-dates | 72 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100755 stable/update-kuc-sru-dates

Comments

Stefan Bader Sept. 13, 2018, 2:22 p.m. UTC | #1
On 05.09.2018 11:58, Stefan Bader wrote:
> Adds a new shell script which updates the entry web page
> kernel.ubuntu.com/index.html with a new set of dates and
> commits the result (if differing to before).
> 
> Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
> ---
> 
> If anybody has a better name, I do not insist on the current one.
> The script itself takes the SRU cycle date and passes it into
> gen-sru-announce --html. Then takes that output and inserts it
> between the repective markers in the kernel.ubuntu.com/index.html
> file.
> The path is found relative to the script path. To make this work
> either the stable directory has to be in the PATH environment or
> a softlink pointing to it must be present in some path, or the
> script is called with a full path.

As nobody bothered and I at least followed up with the second half of Kamal's
suggestions, I now applied this to kteam-tools/stable/ (assuming his ACK).

-Stefan

> 
> -Stefan
> 
> v2: replaced trap ERR by trap EXIT and remove manual cleanup code
> 
>  stable/update-kuc-sru-dates | 72 +++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 72 insertions(+)
>  create mode 100755 stable/update-kuc-sru-dates
> 
> diff --git a/stable/update-kuc-sru-dates b/stable/update-kuc-sru-dates
> new file mode 100755
> index 0000000..79b885e
> --- /dev/null
> +++ b/stable/update-kuc-sru-dates
> @@ -0,0 +1,72 @@
> +#!/bin/bash
> +#------------------------------------------------------------------------------
> +# Update the main web page (index.html) SRU dates section with the output from
> +# gen-sru-announce --html and commit the changes if successful.
> +#
> +# Arguments: <date>
> +#   <date>	: This is the YYYY.MM.DD date of the Monday which starts the
> +#		  new cycle.
> +#------------------------------------------------------------------------------
> +set -e
> +if [ -L "$0" ]; then
> +	BINDIR=$(dirname $(readlink $0))
> +else
> +	BINDIR=$(dirname "$0")
> +fi
> +if [ "$BINDIR" = "." ]; then
> +	BINDIR=$(pwd)
> +fi
> +
> +SRC="$BINDIR/../kernel.ubuntu.com/index.html"
> +if [ ! -r $SRC ]; then
> +	echo "EE: $SRC cannot be read!" >&2
> +	exit 1
> +fi
> +
> +if [ "$1" = "" ]; then
> +	echo "Usage: $(basename $0) <date:YYYY.MM.DD>" >&2
> +	exit 1
> +fi
> +
> +TMP=$(mktemp '/tmp/update-sru-XXXXX')
> +trap 'test -f "$TMP" && rm "$TMP"' EXIT
> +
> +gen-sru-announce --html "$1" >>$TMP || (
> +	echo "EE: Error calling gen-sru-announce:" >&2
> +	cat $TMP >&2
> +	exit 1
> +)
> +
> +awk -v DATA=$TMP '
> +	match($0, /<!-- Start-SRU-Dates -->/){
> +		skip=1
> +		indent=RSTART-1
> +		print $0
> +		while (getline < DATA) {
> +			printf("%*s%s\n", indent, " ", $0)
> +		}
> +		next
> +	}
> +	/<!-- End-SRU-Dates -->/{
> +		skip=0
> +	}
> +	skip == 0{
> +		print $0
> +	}
> +' $SRC >$SRC.new && mv $SRC.new $SRC
> +
> +MSG=$(cat <<EOD
> +kernel.ubuntu.com/index.html: Update for $1 SRU cycle
> +
> +Update the dates shown on the main web page to the new SRU cycle
> +dates.
> +
> +EOD
> +)
> +
> +if [ "$(git diff $SRC 2>/dev/null)" != "" ]; then
> +	git add $SRC && git commit -s -m"$MSG"
> +fi
> +
> +exit 0
> +
>
diff mbox series

Patch

diff --git a/stable/update-kuc-sru-dates b/stable/update-kuc-sru-dates
new file mode 100755
index 0000000..79b885e
--- /dev/null
+++ b/stable/update-kuc-sru-dates
@@ -0,0 +1,72 @@ 
+#!/bin/bash
+#------------------------------------------------------------------------------
+# Update the main web page (index.html) SRU dates section with the output from
+# gen-sru-announce --html and commit the changes if successful.
+#
+# Arguments: <date>
+#   <date>	: This is the YYYY.MM.DD date of the Monday which starts the
+#		  new cycle.
+#------------------------------------------------------------------------------
+set -e
+if [ -L "$0" ]; then
+	BINDIR=$(dirname $(readlink $0))
+else
+	BINDIR=$(dirname "$0")
+fi
+if [ "$BINDIR" = "." ]; then
+	BINDIR=$(pwd)
+fi
+
+SRC="$BINDIR/../kernel.ubuntu.com/index.html"
+if [ ! -r $SRC ]; then
+	echo "EE: $SRC cannot be read!" >&2
+	exit 1
+fi
+
+if [ "$1" = "" ]; then
+	echo "Usage: $(basename $0) <date:YYYY.MM.DD>" >&2
+	exit 1
+fi
+
+TMP=$(mktemp '/tmp/update-sru-XXXXX')
+trap 'test -f "$TMP" && rm "$TMP"' EXIT
+
+gen-sru-announce --html "$1" >>$TMP || (
+	echo "EE: Error calling gen-sru-announce:" >&2
+	cat $TMP >&2
+	exit 1
+)
+
+awk -v DATA=$TMP '
+	match($0, /<!-- Start-SRU-Dates -->/){
+		skip=1
+		indent=RSTART-1
+		print $0
+		while (getline < DATA) {
+			printf("%*s%s\n", indent, " ", $0)
+		}
+		next
+	}
+	/<!-- End-SRU-Dates -->/{
+		skip=0
+	}
+	skip == 0{
+		print $0
+	}
+' $SRC >$SRC.new && mv $SRC.new $SRC
+
+MSG=$(cat <<EOD
+kernel.ubuntu.com/index.html: Update for $1 SRU cycle
+
+Update the dates shown on the main web page to the new SRU cycle
+dates.
+
+EOD
+)
+
+if [ "$(git diff $SRC 2>/dev/null)" != "" ]; then
+	git add $SRC && git commit -s -m"$MSG"
+fi
+
+exit 0
+