mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
Converted all ASCII tabs to ASCII spaces using a 8 character tab stop, for all files, except for all Makefiles (plus rpm.mk). The `git diff -w` reports no changes.
214 lines
5.3 KiB
Bash
Executable File
214 lines
5.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# update_ver - update version numbers in Makefile.config
|
|
#
|
|
# This tools is used by "make prep".
|
|
#
|
|
# The original name for this tool was verupdate.
|
|
#
|
|
# Copyright (C) 2021-2023 Landon Curt Noll
|
|
#
|
|
# Calc is open software; you can redistribute it and/or modify it under
|
|
# the terms of version 2.1 of the GNU Lesser General Public License
|
|
# as published by the Free Software Foundation.
|
|
#
|
|
# Calc 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 Lesser General
|
|
# Public License for more details.
|
|
#
|
|
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
#
|
|
# Under source code control: 2021/12/12 15:32:43
|
|
# File existed as early as: 2021
|
|
#
|
|
# chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
|
# Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
|
|
|
# setup
|
|
#
|
|
MK_SET1="Makefile.config"
|
|
|
|
#####################
|
|
# utility functions #
|
|
#####################
|
|
|
|
# firewall - must have primary Makefiles
|
|
#
|
|
check_primary() {
|
|
echo "check for primary Makefiles: $MK_SET1"
|
|
for i in $MK_SET1; do
|
|
if [[ ! -f $i ]]; then
|
|
echo "$0: FATAL: Missing critical: $i" 1>&2
|
|
fi
|
|
if [[ ! -s $i ]]; then
|
|
echo "$0: FATAL: empty: $i" 1>&2
|
|
fi
|
|
done
|
|
for i in $MK_SET1; do
|
|
if [[ ! -f $i ]]; then
|
|
echo "$0: FATAL: exit 1"
|
|
exit 1
|
|
fi
|
|
if [[ ! -s $i ]]; then
|
|
echo "$0: FATAL: exit 2"
|
|
exit 2
|
|
fi
|
|
done
|
|
}
|
|
|
|
# firewall - bak files must not pre-exist
|
|
#
|
|
no_bak() {
|
|
for i in $MK_SET1; do
|
|
if [[ -f $i.bak ]]; then
|
|
echo "$0: FATAL: bak copy found: $i.bak" 1>&2
|
|
echo "$0: FATAL: try: diff -u $i.bak $i" 1>&2
|
|
echo "$0: FATAL: consider: rm -f $i.bak" 1>&2
|
|
fi
|
|
done
|
|
for i in $MK_SET1; do
|
|
if [[ -f $i.bak ]]; then
|
|
echo "$0: FATAL: exit 5"
|
|
exit 5
|
|
fi
|
|
done
|
|
}
|
|
|
|
# firewall
|
|
#
|
|
check_primary
|
|
no_bak
|
|
|
|
# generate the version
|
|
#
|
|
echo "make ver_calc >/dev/null 2>&1"
|
|
make ver_calc >/dev/null 2>&1
|
|
status="$?"
|
|
if [[ $status -ne 0 ]]; then
|
|
echo "$0: FATAL: make ver_calc non-zero exit code: $status" 1>&2
|
|
echo "$0: FATAL: exit 4"
|
|
exit 4
|
|
fi
|
|
if [[ ! -x ver_calc ]]; then
|
|
echo "$0: FATAL: cannot find / did not make ver_calc executable" 1>&2
|
|
echo "$0: FATAL: exit 5"
|
|
exit 5
|
|
fi
|
|
CALC_VERSION=$(./ver_calc)
|
|
export CALC_VERSION
|
|
if [[ -z $CALC_VERSION ]]; then
|
|
echo "$0: FATAL: unable to determine calc version" 1>&2
|
|
echo "$0: FATAL: exit 6"
|
|
exit 6
|
|
fi
|
|
CALC_VER=$(./ver_calc -V)
|
|
export CALC_VER
|
|
if [[ -z $CALC_VER ]]; then
|
|
echo "$0: FATAL: unable to determine calc major version" 1>&2
|
|
echo "$0: FATAL: exit 7"
|
|
exit 7
|
|
fi
|
|
|
|
# re-firewall
|
|
#
|
|
# Just in case the 'make ver_calc' causes some Makefile.config
|
|
# to be reformed, and thus a bak file was created.
|
|
#
|
|
check_primary
|
|
no_bak
|
|
|
|
# modify version lines
|
|
#
|
|
echo "about to modify: $MK_SET1"
|
|
echo "changing version line to use VERSION= $CALC_VERSION"
|
|
echo "changing major version line to use VER= $CALC_VER"
|
|
perl -p -i -e \
|
|
's/^VERSION= .*/VERSION= '"$CALC_VERSION"'/; s/^VER= .*/VER= '"$CALC_VER"'/' \
|
|
$MK_SET1
|
|
status="$?"
|
|
if [[ $status -ne 0 ]]; then
|
|
echo "$0: FATAL: perl version change for non-zero exit code: $status" 1>&2
|
|
echo "$0: FATAL: exit 8"
|
|
exit 8
|
|
fi
|
|
|
|
# print calc version
|
|
#
|
|
echo
|
|
export VERSION_STRING=
|
|
export VERSION_ERR=
|
|
for i in $MK_SET1; do
|
|
VERSION_STRING=$(egrep '^VERSION= [1-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' "$i")
|
|
if [[ -z $VERSION_STRING ]]; then
|
|
echo "$0: FATAL: cannot find VERSION= in $i"
|
|
VERSION_ERR="$i"
|
|
else
|
|
echo "$i: $VERSION_STRING"
|
|
fi
|
|
done
|
|
if [[ -n $VERSION_ERR ]]; then
|
|
echo "$0: FATAL: error in finding calc version string"
|
|
echo "$0: FATAL: exit 9"
|
|
exit 9
|
|
fi
|
|
|
|
# print calc major version
|
|
#
|
|
export VER_STRING=
|
|
export VER_ERR=
|
|
for i in $MK_SET1; do
|
|
VER_STRING=$(egrep '^VER= [1-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' "$i")
|
|
if [[ -z $VER_STRING ]]; then
|
|
echo "$0: FATAL: cannot find VER= in $i"
|
|
VER_ERR="$i"
|
|
else
|
|
echo "$i: $VER_STRING"
|
|
fi
|
|
done
|
|
echo
|
|
if [[ -n $VER_ERR ]]; then
|
|
echo "$0: FATAL: error in finding calc major version string"
|
|
echo "$0: FATAL: exit 10"
|
|
exit 10
|
|
fi
|
|
|
|
# print other useful calc strings
|
|
#
|
|
export VER_CALC_OUTPUT=$(./ver_calc)
|
|
echo 'Begin text strings used to produce this release:'
|
|
echo 'vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv'
|
|
echo
|
|
echo
|
|
echo
|
|
echo "$VER_CALC_OUTPUT"
|
|
echo
|
|
echo "v$VER_CALC_OUTPUT"
|
|
echo
|
|
echo "Release v$VER_CALC_OUTPUT"
|
|
echo
|
|
echo "calc $VER_CALC_OUTPUT release"
|
|
echo
|
|
echo 'For use with sourceforge.net:'
|
|
echo
|
|
echo 'cd /home/pfs/project/calc/calc'
|
|
echo "mkdir $VER_CALC_OUTPUT"
|
|
echo "cd $VER_CALC_OUTPUT"
|
|
echo 'mput calc-*'"$VER_CALC_OUTPUT"'*'
|
|
echo 'put /home/chongo/tmp/README.txt'
|
|
echo 'ls'
|
|
echo
|
|
echo
|
|
echo
|
|
echo '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'
|
|
echo 'End text strings used to produce this release:'
|
|
echo
|
|
|
|
# All Done!!! -- Jessica Noll, Age 2
|
|
#
|
|
echo "VERSION in Makefile.config is up to date"
|
|
exit 0
|