summaryrefslogtreecommitdiffhomepage
path: root/build.subr
diff options
context:
space:
mode:
Diffstat (limited to 'build.subr')
-rw-r--r--build.subr69
1 files changed, 39 insertions, 30 deletions
diff --git a/build.subr b/build.subr
index 492706de..2020d217 100644
--- a/build.subr
+++ b/build.subr
@@ -1,8 +1,12 @@
+#
+# set -o errexit is assumed.
+#
+
TIMESTAMP_FMT="${TIMESTAMP_FMT:-"%Y/%m/%d %H:%M:%S"}";
check_prereqs() {
for _cmd in "$@"; do
- if ! command -v "${_cmd}" >/dev/null; then
+ if ! command -v ${_cmd} >/dev/null; then
log_msg fail "Error: missing prerequisite command \`${_cmd}";
exit 1;
fi;
@@ -14,25 +18,30 @@ date() {
};
fetch() {
- wget --no-check-certificate -N "${1}";
- if [ $# -eq 2 ]\
- && ! printf "${2} ${1##*/}\n" | sha256sum -c --status; then
- log_msg fail "Error: sha256sum mismatch for URL \`${1##*/}'.";
+ wget --no-check-certificate -N ${1};
+ if [ $# -eq 2 ] && ! compare_hash ${1##*/} ${2}; then
+ log_msg fail "Error: hash mismatch for URL \`${1##*/}'.";
exit 1;
fi;
};
fetch_git() {
- if [ -d "${1}" ]; then
- (cd "${1}" && git pull origin main);
+ if [ -d ${1} ]; then
+ (cd ${1} && git pull origin main);
else
- git clone "${2}" "${1}";
+ git clone ${2} ${1};
fi;
};
+compare_hash() {
+ _hash_cmp=${2}; set -- $(openssl dgst -sha256 ${1});
+ shift $((${#}-1)); set -- ${1} ${_hash_cmp}; unset _hash_cmp;
+ [ "x${1}" = "x${2}" ];
+};
+
is_build_script_done() {
- _script_fname="${SCRIPT_FNAME##*/}";
- if [ -f "${WORKDIR}/.${_script_fname%.build}.${1}" ]; then
+ _script_fname=${SCRIPT_FNAME##*/};
+ if [ -f ${WORKDIR}/.${_script_fname%.build}.${1} ]; then
unset script_fname;
return 0;
else
@@ -41,13 +50,13 @@ is_build_script_done() {
fi;
};
set_build_script_done() {
- _script_fname="${SCRIPT_FNAME##*/}";
- _done_fname="${WORKDIR}/.${_script_fname%.build}";
+ _script_fname=${SCRIPT_FNAME##*/};
+ _done_fname=${WORKDIR}/.${_script_fname%.build};
while [ $# -ge 1 ]; do
if [ "x${1#-}" != "x${1}" ]; then
- rm -f "${_done_fname}.${1#-}";
+ rm -f ${_done_fname}.${1#-};
else
- touch "${_done_fname}.${1}";
+ touch ${_done_fname}.${1};
log_msg info "Finished build step ${1} of build script \`${_script_fname}'.";
fi; shift;
done;
@@ -55,8 +64,8 @@ set_build_script_done() {
};
log_msg() {
- _lvl="${1}"; shift;
- case "${_lvl}" in
+ _lvl=${1}; shift;
+ case ${_lvl} in
fail) printf "\033[91m"; ;;
info) printf "\033[97m"; ;;
succ) printf "\033[92m"; ;;
@@ -70,17 +79,17 @@ log_msg() {
};
parse_with_pkg_name() {
- _pkg_name="${1}"; shift;
+ _pkg_name=${1}; shift;
while [ $# -ge 0 ]; do
- _pkg_url="${1}"; _envvs="${2}"; _pkg_fname="${_pkg_url##*/}";
+ _pkg_url=${1}; _envvs="${2}"; _pkg_fname=${_pkg_url##*/};
if [ "x${_pkg_fname%%-*}" = "x${_pkg_name}" ]; then
_IFS="${IFS}"; IFS=:;
for _envv in ${_envvs}; do
export ${_envv};
done; IFS="${_IFS}"; unset _envvs _envv;
- _pkg_subdir="${_pkg_fname%%.tar*}";
- eval _pkg_sha256sum=\""\${PKG_$(echo "${_pkg_name}" |\
- tr a-z A-Z)_SHA256SUM}"\";
+ _pkg_subdir=${_pkg_fname%%.tar*};
+ eval _pkg_sha256sum=\${PKG_$(echo "${_pkg_name}" |\
+ tr a-z A-Z)_SHA256SUM};
return;
fi; shift 2;
done;
@@ -90,30 +99,30 @@ parse_with_pkg_name() {
rm_if_exists() {
while [ $# -gt 1 ]; do [ "x${1%[a-z]}" = "x-" ] &&\
eval _${1#-}flag=1; shift; done;
- _dir="${1}";
- if [ -d "${1}" ]; then
- rm -rf "${1}" || return 1;
+ _dir=${1};
+ if [ -d ${1} ]; then
+ rm -rf ${1} || return 1;
fi;
if [ ${_mflag:-0} -eq 1 ]; then
- unset _mflag; mkdir "${1}" || return 2;
+ unset _mflag; mkdir ${1} || return 2;
fi;
if [ ${_cflag:-0} -eq 1 ]; then
- unset _cflag; cd "${1}" || return 3;
+ unset _cflag; cd ${1} || return 3;
fi;
};
run_configure_with_extra_args() {
- _IFS="${IFS}"; IFS=","; _script="${1}"; _extra_args="${2}";
- shift 2; "${_script}" "${@}" ${_extra_args}; IFS="${_IFS}";
+ _IFS="${IFS}"; IFS=","; _script=${1}; _extra_args="${2}";
+ shift 2; ${_script} "${@}" ${_extra_args}; IFS="${_IFS}";
unset _script _extra_args;
};
set_build_dir() {
- export _build_dir="${1}-build-${2}";
+ export _build_dir=${1}-build-${2};
};
set_env_vars() {
- _val="${1}"; shift;
+ _val=${1}; shift;
while [ $# -ge 1 ]; do
export "${1}=${_val}"; shift;
done; unset _val;