diff options
author | Bruno Haible <bruno@clisp.org> | 2021-04-11 14:38:37 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2021-04-11 14:38:37 +0200 |
commit | c4ced6dbaaeae2efdd45e74e626ad2b1ee50aa14 (patch) | |
tree | 1096d5f822cace1026cdf5fd7770a50aab8ee01e /build-aux/increment-serial | |
parent | 906d51f17c05324f7389de7cad5e12e1800ac279 (diff) | |
download | gnulib-c4ced6dbaaeae2efdd45e74e626ad2b1ee50aa14.tar.gz |
increment-serial: New program.
* build-aux/increment-serial: New file.
Diffstat (limited to 'build-aux/increment-serial')
-rwxr-xr-x | build-aux/increment-serial | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/build-aux/increment-serial b/build-aux/increment-serial new file mode 100755 index 0000000000..bab06d9d4c --- /dev/null +++ b/build-aux/increment-serial @@ -0,0 +1,114 @@ +#!/bin/sh +# Increment serial number in Autoconf *.m4 files. + +# Copyright (C) 2021 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +scriptversion=2021-04-11 + +copyright_year=`echo "$scriptversion" | sed -e 's/[^0-9].*//'` +copyright="Copyright (C) ${copyright_year} Free Software Foundation, Inc. +License GPLv2+: GNU GPL version 2 or later <https://gnu.org/licenses/gpl.html>. +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law." + +usage="Usage: $0 [FILE...] + +Increments the serial number, if present, in each of the files. + +Options: + --version output version information and exit + --help print this help text and exit + +Send patches and bug reports to <bug-gnulib@gnu.org>." + +# Based on +# <https://www.gnu.org/software/sed/manual/html_node/Increment-a-number.html> +sed_inc_serial='1,10 { + /serial *[0-9]/ { + s/\(serial *[0-9][0-9]*\)/\1~/ + :a + s/\(serial *[0-9]*\)9\(_*\)~/\1_\2~/ + ta + s/\(serial *\)\(_*\)~/\11\2~/ + tb + s/\(serial *[0-9]*\)8\(_*\)~/\19\2~/ + tb + s/\(serial *[0-9]*\)7\(_*\)~/\18\2~/ + tb + s/\(serial *[0-9]*\)6\(_*\)~/\17\2~/ + tb + s/\(serial *[0-9]*\)5\(_*\)~/\16\2~/ + tb + s/\(serial *[0-9]*\)4\(_*\)~/\15\2~/ + tb + s/\(serial *[0-9]*\)3\(_*\)~/\14\2~/ + tb + s/\(serial *[0-9]*\)2\(_*\)~/\13\2~/ + tb + s/\(serial *[0-9]*\)1\(_*\)~/\12\2~/ + tb + s/\(serial *[0-9]*\)0\(_*\)~/\11\2~/ + tb + :b + s/\(serial *[0-9]*\)_/\10/ + tb + s/\(serial *[0-9]*\)~/\1/ + } +}' + +# func_process FILE +func_process () +{ + sed -i -e "$sed_inc_serial" "$1" || exit 1 +} + +while test $# -gt 0; do + case "$1" in + --version) + set -e + echo "increment-serial $scriptversion" + echo "$copyright" + echo + printf 'Written by %s.\n' "Bruno Haible" + exit 0 + ;; + --help) + set -e + echo "$usage" + exit 0 + ;; + --) + shift + while test $# -gt 0; do + case "$1" in + -*) func_process "./$1" ;; + *) func_process "$1" ;; + esac + shift + done + break + ;; + -*) + echo "$0: Unknown option '$1', try '$0 --help'" 1>&2 + exit 1 + ;; + *) + func_process "$1" + ;; + esac + shift +done +exit 0 |