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 |
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 --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 +
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