summaryrefslogtreecommitdiffhomepage
path: root/build.sh
diff options
context:
space:
mode:
authorLucio Andrés Illanes Albornoz (arab, vxp) <l.illanes@gmx.de>2016-02-27 12:41:38 +0100
committerLucio Andrés Illanes Albornoz (arab, vxp) <l.illanes@gmx.de>2016-02-27 12:41:38 +0100
commit6e48a090d26ba77f026c6ade823cf06f5918a1cf (patch)
tree2913c99055d0e8bc770c58a64753b3c34a9f1f7c /build.sh
parent9802c2d361afd0bc9304aca881cb05136ac42f2b (diff)
downloadmidipix_build-6e48a090d26ba77f026c6ade823cf06f5918a1cf.tar.bz2
midipix_build-6e48a090d26ba77f026c6ade823cf06f5918a1cf.tar.xz
- Don't leak BUILD_IN_PROGRESS into $PWD.
- Fixes -r.
Diffstat (limited to 'build.sh')
-rwxr-xr-xbuild.sh37
1 files changed, 18 insertions, 19 deletions
diff --git a/build.sh b/build.sh
index 73de5441..9d70f594 100755
--- a/build.sh
+++ b/build.sh
@@ -3,34 +3,33 @@
{
. ./build.subr;
-while getopts hr:t CURRENT_ARG; do
-case ${CURRENT_ARG} in
-r) ARG_BUILD_SCRIPTS="${OPTARG%%:*}";
- [ -z "${ARG_BUILD_STEPS:="${ARG_BUILD_SCRIPTS##*:}"}" ] &&\
- ARG_BUILD_STEPS=ALL; ;;
-t) ARG_TARBALL=1; ;;
-h|\?) exec cat build.usage; ;;
-esac; done; shift $((${OPTIND} - 1));
while [ ${#} -gt 0 ]; do
- if [ "x${1#*=*}" != "x${1}" ]; then
- set_var_unsafe "$(get_prefix_lrg "${1}" =)" \
- "$(get_postfix "${1}" =)"; shift;
- fi;
-done; . ./build.vars;
+case ${1} in
+-r) [ -n "${ARG_RESTART_SCRIPT}" ] && exec cat build.usage;
+ [ "x${2%%:*}" != "x${2}" ] \
+ && { ARG_RESTART_SCRIPT=${2%%:*}; ARG_RESTART_SCRIPT_AT=${2##*:}; } \
+ || { ARG_RESTART_SCRIPT=${2}; ARG_RESTART_SCRIPT_AT=ALL; };
+ shift; ;;
+-t) [ ${ARG_TARBALL:-0} -eq 1 ] && exec cat build.usage;
+ ARG_TARBALL=1; ;;
+*=*) set_var_unsafe "$(get_prefix_lrg "${1}" =)" \
+ "$(get_postfix "${1}" =)"; ;;
+*) exec cat build.usage; ;;
+esac; shift; done; . ./build.vars;
clear_env_with_except HOME PATH SHELL TERM USER;
check_path_vars PREFIX PREFIX_NATIVE WORKDIR;
check_prereqs git make mktemp openssl patch sed sort tar tr wget;
log_msg info "Build started by ${BUILD_USER:=${USER}}@${BUILD_HNAME:=$(hostname)} at ${BUILD_DATE:=$(date %Y-%m-%d-%H-%M-%S)}.";
log_env_vars ${LOG_ENV_VARS};
(mkdir -p ${PREFIX} ${PREFIX_NATIVE} ${PREFIX_TARGET} ${WORKDIR};
-touch BUILD_IN_PROGRESS ${BUILD_PROGRESS_FNAME:=${PREFIX}/BUILD_STARTED_AT_${BUILD_DATE}};
+touch ${PREFIX}/BUILD_IN_PROGRESS ${BUILD_PROGRESS_FNAME:=${PREFIX}/BUILD_STARTED_AT_${BUILD_DATE}};
BUILD_NFINI=${BUILD_NSKIP:=${BUILD_NFAIL:=${BUILD_NBUILT:=0}}};
BUILD_SECS=$(command date +%s);
for BUILD_LVL in 0 1 2 3; do
for BUILD_SCRIPT_FNAME in ${BUILD_LVL}[0-9][0-9].*.build; do
- if [ -n "${ARG_BUILD_SCRIPTS}" ] \
- && [ "${ARG_BUILD_SCRIPTS}" != "ALL" ] \
- && ! match_list "${ARG_BUILD_SCRIPTS}" \
+ if [ -n "${ARG_RESTART_SCRIPT}" ] \
+ && [ "${ARG_RESTART_SCRIPT}" != "ALL" ] \
+ && ! match_list "${ARG_RESTART_SCRIPT}" \
, "${BUILD_SCRIPT_FNAME}"; then
log_msg info "Skipped build script \`${BUILD_SCRIPT_FNAME}' (--build-scripts policy.)";
continue;
@@ -39,12 +38,12 @@ for BUILD_LVL in 0 1 2 3; do
continue;
else
unset BUILD_SCRIPT_RC; : $((BUILD_NBUILT+=1));
- if [ "x${ARG_BUILD_SCRIPTS}" != "xALL" ]\
+ if [ "x${ARG_RESTART_SCRIPT}" != "xALL" ]\
&& is_build_script_done finish "${BUILD_SCRIPT_FNAME%.build}"; then
log_msg info "Skipped build script \`${BUILD_SCRIPT_FNAME}' (already built.)";
: $((BUILD_NSKIP+=1)); BUILD_SCRIPT_RC=0; continue;
fi;
- log_msg info "Invoking build script${ARG_BUILD_SCRIPTS:+ (forcibly)} \`${BUILD_SCRIPT_FNAME}'${ARG_BUILD_STEPS:+ at build step ${ARG_BUILD_STEPS}}.";
+ log_msg info "Invoking build script${ARG_RESTART_SCRIPT:+ (forcibly)} \`${BUILD_SCRIPT_FNAME}'${ARG_RESTART_SCRIPT_AT:+ at build step ${ARG_RESTART_SCRIPT_AT}}.";
(set -o errexit -- $(split . ${BUILD_SCRIPT_FNAME%%.build*}); \
SCRIPT_FNAME=${BUILD_SCRIPT_FNAME}; \
SCRIPT_NAME=${SCRIPT_FNAME%%.build*}; \