summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLucio Andrés Illanes Albornoz <lucio@lucioillanes.de>2020-03-02 11:03:47 +0000
committerLucio Andrés Illanes Albornoz <lucio@lucioillanes.de>2020-03-02 11:03:47 +0000
commit221ee9ab8f7be62b3bf1adf14e406d138a96ac08 (patch)
treeb5437c2c8161bb6d84ca13255bde46bd0f53acf4
parent083f52ef65a49edcd51f6adcce3ca14c58feb9a4 (diff)
downloadmidipix_build-221ee9ab8f7be62b3bf1adf14e406d138a96ac08.tar.bz2
midipix_build-221ee9ab8f7be62b3bf1adf14e406d138a96ac08.tar.xz
build.sh:build(): iteratively print list of unknown packages, if any.
subr/build_init.subr:buildp_init_args(): correctly parse -r package[,...]:step[,...]. subr/ex_pkg{,_dispatch}.subr: minor cleanup. subr/ex_pkg_dispatch.subr:ex_pkg_dispatch(): don't reset ${EX_PKG_DISPATCH_UNKNOWN} on entry. subr/ex_pkg_dispatch.subr:ex_pkg_dispatch(): correctly check ${_pkg_names} for ${_pkg_name} when updating ${EX_PKG_DISPATCH_UNKNOWN}.
-rwxr-xr-xbuild.sh8
-rw-r--r--subr/build_init.subr2
-rw-r--r--subr/ex_pkg.subr2
-rw-r--r--subr/ex_pkg_dispatch.subr6
4 files changed, 10 insertions, 8 deletions
diff --git a/build.sh b/build.sh
index f3e5a2ba..f34025ef 100755
--- a/build.sh
+++ b/build.sh
@@ -91,8 +91,8 @@ buildp_dispatch() {
};
build() {
- local _build_time_hours=0 _build_time_mins=0 _build_time_secs=0 \
- BUILD_DATE_START="" BUILD_NFAIL=0 BUILD_NFINI=0 BUILD_NSKIP=0 \
+ local _build_time_hours=0 _build_time_mins=0 _build_time_secs=0 _pkg_name="" \
+ BUILD_DATE_START="" BUILD_NFAIL=0 BUILD_NFINI=0 BUILD_NSKIP=0 \
BUILD_PKGS_FAILED="" EX_PKG_DISPATCH_UNKNOWN="";
if trap "buildp_ast abort" HUP INT TERM USR1 USR2\
&& trap "buildp_ast exit" EXIT\
@@ -104,7 +104,9 @@ build() {
buildp_dispatch "${BUILD_GROUPS}" "${ARG_PARALLEL:-1}" \
"${BUILD_WORKDIR}/build.fifo" "${ARG_RESTART}" \
"${ARG_RESTART_AT}" "${ARG_RESTART_RECURSIVE}" "${BUILD_WORKDIR}"; then
- rtl_log_msg failexit "Error: package \`${EX_PKG_DISPATCH_UNKNOWN}' unknown.";
+ for _pkg_name in ${EX_PKG_DISPATCH_UNKNOWN}; do
+ rtl_log_msg fail "Error: package \`${_pkg_name}' unknown.";
+ done; exit 1;
else : $((_build_time_secs=$(rtl_date %s)-${_build_time_secs}));
: $((_build_time_hours=${_build_time_secs}/3600));
: $((_build_time_minutes=(${_build_time_secs}%3600)/60));
diff --git a/subr/build_init.subr b/subr/build_init.subr
index fb3e2482..7cce5da3 100644
--- a/subr/build_init.subr
+++ b/subr/build_init.subr
@@ -20,7 +20,7 @@ buildp_init_args() {
ALL) ARG_RESTART_AT=ALL; ARG_RESTART_RECURSIVE=2; ;;
LAST) ARG_RESTART_AT=ALL; ARG_RESTART_RECURSIVE=0; ;;
"") ;;
- *:*) ARG_RESTART_AT="${ARG_RESTART#*:}"; ARG_RESTART="${ARG_RESTART%:*}"; ;;
+ *:*) ARG_RESTART_AT="${ARG_RESTART#*:}"; ARG_RESTART="$(echo "${ARG_RESTART%%:*}" | sed "s/,/ /g")"; ;;
*) ARG_RESTART="$(echo "${ARG_RESTART}" | sed "s/,/ /g")"; ARG_RESTART_AT=ALL; ;;
esac;
if [ "${ARG_RESTART}" = "LAST" ]; then
diff --git a/subr/ex_pkg.subr b/subr/ex_pkg.subr
index fd2df524..e4a68140 100644
--- a/subr/ex_pkg.subr
+++ b/subr/ex_pkg.subr
@@ -30,7 +30,7 @@ ex_pkg_check_depends() {
#
# ex_pkg_expand_packages() - expand build group name to list of packages ordered and filtered according to dependency and restart constraints
# @_group_name: build group name
-# @_restart: optional comma-separated list of package names to rebuild
+# @_restart: optional whitespace-separated list of package names to rebuild
# @_restart_recursive: optional flag specifiying either no dependency expansion (0,) dependency expansion (1,) dependency expansion and forcibly rebuild (2.)
#
# Return: zero (0) on success, non-zero (>0) on failure, ${EXP_PKG_COMPLETE}, ${EXP_PKG_DISABLED}, ${EXP_PKG_FINISHED}, and ${EXP_PKG_NAMES} set post-return.
diff --git a/subr/ex_pkg_dispatch.subr b/subr/ex_pkg_dispatch.subr
index 749fe7f7..688cd0e8 100644
--- a/subr/ex_pkg_dispatch.subr
+++ b/subr/ex_pkg_dispatch.subr
@@ -152,7 +152,7 @@ exp_pkg_dispatch_packages() {
# @_group_names: build group name(s)
# @_njobs_max: maximum count of simultaneous jobs
# @_pipe_path: pathname to build FIFO
-# @_restart: optional comma-separated list of package names to rebuild
+# @_restart: optional whitespace-separated list of package names to rebuild
# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL
# @_restart_recursive: optional flag specifiying either no dependency expansion (0,) dependency expansion (1,) dependency expansion and forcibly rebuild (2.)
# @_workdir: pathname to build-specific temporary directory
@@ -166,7 +166,7 @@ ex_pkg_dispatch() {
_pkg_name="" _pkg_names="" _rc=0 \
EXP_PKG_COMPLETE EXP_PKG_DISABLED EXP_PKG_FINISHED EXP_PKG_DISPATCH_COUNT \
EXP_PKG_DISPATCH_COUNT_MAX EXP_PKG_DISPATCH_NJOBS EXP_PKG_NAMES;
- EX_PKG_DISPATCH_UNKNOWN=""; EX_PKG_DISPATCH_WAIT="";
+ EX_PKG_DISPATCH_WAIT="";
for _group_name in $(rtl_uniq $(rtl_lunfold_depends '${_name}_GROUP_DEPENDS' ${_group_names})); do
EXP_PKG_COMPLETE="" EXP_PKG_DISABLED="" EXP_PKG_FINISHED="";
EXP_PKG_DISPATCH_COUNT=0 EXP_PKG_DISPATCH_COUNT_MAX=0 EXP_PKG_DISPATCH_NJOBS=0;
@@ -193,7 +193,7 @@ ex_pkg_dispatch() {
done;
if ! rtl_lmatch "${_restart}" "ALL LAST"; then
for _pkg_name in ${_restart}; do
- if ! rtl_lmatch "${_pkg_names}" "${_restart}"; then
+ if ! rtl_lmatch "${_pkg_names}" "${_pkg_name}"; then
EX_PKG_DISPATCH_UNKNOWN="$(rtl_lconcat "${EX_PKG_DISPATCH_UNKNOWN}" "${_pkg_name}")";
fi;
done;