1da591 {build.sh,subr/pkg_setup_dispatch.subr}: split.

Authored and Committed by Lucio Andrés Illanes Albornoz (arab, vxp) 7 years ago
    {build.sh,subr/pkg_setup_dispatch.subr}: split.
    
        
file modified
+1 -62
build.sh CHANGED
@@ -54,68 +54,7 @@ for BUILD_TARGET_LC in $(subst_tgts invariants ${BUILD_TARGETS_META:-world}); do
54
54
BUILD_PACKAGES="$(lfilter "${BUILD_PACKAGES}" "${BUILD_PACKAGES_RESTART}")";
55
55
fi;
56
56
for PKG_NAME in ${BUILD_PACKAGES}; do
57
- #
57
+ pkg_setup_dispatch "${BUILD_TARGET}" "${PKG_NAME}" "${ARG_RESTART}" "${ARG_RESTART_AT}";
58
- #
59
- #
60
- unset PKG_NAME_PARENT;
61
- if [ "${PKG_NAME#*_flavour_*}" != "${PKG_NAME}" ]; then
62
- PKG_NAME_PARENT="${PKG_NAME%_flavour_*}";
63
- else
64
- unset BUILD_SCRIPT_RC;
65
- fi;
66
- (set -o errexit -o noglob;
67
- if [ -n "${BUILD_PACKAGES_RESTART}" ]\
68
- || [ "${BUILD_TARGET}" = "INVARIANTS" ]\
69
- || ! is_build_script_done "${PKG_NAME}" finish; then
70
- set -- $(lfilter -not "${BUILD_STEPS}" \
71
- "$(get_var_unsafe PKG_$(toupper "${PKG_NAME}")_BUILD_STEPS_DISABLE)");
72
- while [ ${#} -gt 0 ]; do
73
- _pkg_step_cmds=""; _pkg_step_cmd_args="";
74
- case "${1#*:}" in
75
- dynamic)
76
- if [ "${BUILD_TARGET}" = "INVARIANTS" ]; then
77
- _pkg_step_cmds="pkg_${PKG_NAME}_${1%:*} pkg_${1%:*}";
78
- elif [ -n "${BUILD_PACKAGES_RESTART}" ]; then
79
- if [ -z "${ARG_RESTART_AT}" ]\
80
- || lmatch "${ARG_RESTART_AT}" , "${1%:*}"; then
81
- _pkg_step_cmds="pkg_${PKG_NAME}_${1%:*} pkg_${1%:*}";
82
- fi;
83
- elif ! is_build_script_done "${PKG_NAME}" "${1%:*}"; then
84
- _pkg_step_cmds="pkg_${PKG_NAME}_${1%:*} pkg_${1%:*}";
85
- fi; ;;
86
- invariant)
87
- _pkg_step_cmds="pkg_${1%:*}"; ;;
88
- variant)
89
- if lmatch "${ARG_RESTART_AT}" "," "${1%:*}"; then
90
- _pkg_step_cmds="pkg_${PKG_NAME}_${1%:*} pkg_${1%:*}";
91
- fi; ;;
92
- virtual)
93
- _pkg_step_cmds="pkg_${PKG_NAME}_${1%:*}";
94
- _pkg_step_cmd_args="${ARG_RESTART_AT:-ALL}"; ;;
95
- all)
96
- if test_cmd "pkg_${PKG_NAME}_${1%:*}"; then
97
- "pkg_${PKG_NAME}_${1%:*}" "${ARG_RESTART_AT:-ALL}";
98
- break;
99
- fi; ;;
100
- *) continue; ;;
101
- esac;
102
- for __ in ${_pkg_step_cmds}; do
103
- if test_cmd "${__}"; then
104
- test_cmd "pkg_${PKG_NAME}_${1%:*}_pre" \
105
- && "pkg_${PKG_NAME}_${1%:*}_pre"
106
- "${__}" ${_pkg_step_cmd_args};
107
- test_cmd "pkg_${PKG_NAME}_${1%:*}_post" \
108
- && "pkg_${PKG_NAME}_${1%:*}_post"
109
- if [ "${1#*:}" != "always" ]\
110
- && [ ${#} -ge 2 ]; then
111
- set_build_script_done "${PKG_NAME}" "${1%:*}" "-${2#*:}";
112
- else
113
- set_build_script_done "${PKG_NAME}" "${1%:*}";
114
- fi; break;
115
- fi;
116
- done;
117
- shift; done;
118
- fi);
119
58
case "${BUILD_SCRIPT_RC:=${?}}" in
120
59
0) log_msg succ "Finished \`${PKG_NAME}' build.";
121
60
: $((BUILD_NFINI+=1)); continue; ;;
subr/pkg_setup_dispatch.subr ADDED
@@ -0,0 +1,67 @@
1
+ #
2
+ # set -o errexit -o noglob are assumed.
3
+ #
4
+
5
+ pkg_setup_dispatch() {
6
+ local _tgt_name="${1}" _pkg_name="${2}" \
7
+ _restart="${3}" _restart_at="${4}" \
8
+ _pkg_name_parent _pkg_step_cmds _pkg_step_cmd_args;
9
+ if [ "${_pkg_name#*_flavour_*}" != "${_pkg_name}" ]; then
10
+ _pkg_name_parent="${_pkg_name%_flavour_*}";
11
+ fi;
12
+ (set -o errexit -o noglob;
13
+ if [ -n "${_restart}" ]\
14
+ || [ "${_tgt_name}" = "INVARIANTS" ]\
15
+ || ! is_build_script_done "${_pkg_name}" finish; then
16
+ set -- $(lfilter -not "${BUILD_STEPS}" \
17
+ "$(get_var_unsafe PKG_$(toupper "${_pkg_name}")_BUILD_STEPS_DISABLE)");
18
+ while [ ${#} -gt 0 ]; do
19
+ _pkg_step_cmds=""; _pkg_step_cmd_args="";
20
+ case "${1#*:}" in
21
+ dynamic)
22
+ if [ "${_tgt_name}" = "INVARIANTS" ]; then
23
+ _pkg_step_cmds="pkg_${_pkg_name}_${1%:*} pkg_${1%:*}";
24
+ elif [ -n "${_restart}" ]; then
25
+ if [ -z "${_restart_at}" ]\
26
+ || lmatch "${_restart_at}" , "${1%:*}"; then
27
+ _pkg_step_cmds="pkg_${_pkg_name}_${1%:*} pkg_${1%:*}";
28
+ fi;
29
+ elif ! is_build_script_done "${_pkg_name}" "${1%:*}"; then
30
+ _pkg_step_cmds="pkg_${_pkg_name}_${1%:*} pkg_${1%:*}";
31
+ fi; ;;
32
+ invariant)
33
+ _pkg_step_cmds="pkg_${1%:*}"; ;;
34
+ variant)
35
+ if lmatch "${_restart_at}" "," "${1%:*}"; then
36
+ _pkg_step_cmds="pkg_${_pkg_name}_${1%:*} pkg_${1%:*}";
37
+ fi; ;;
38
+ virtual)
39
+ _pkg_step_cmds="pkg_${_pkg_name}_${1%:*}";
40
+ _pkg_step_cmd_args="${_restart_at:-ALL}"; ;;
41
+ all)
42
+ if test_cmd "pkg_${_pkg_name}_${1%:*}"; then
43
+ "pkg_${_pkg_name}_${1%:*}" "${_restart_at:-ALL}";
44
+ break;
45
+ fi; ;;
46
+ *) continue; ;;
47
+ esac;
48
+ for __ in ${_pkg_step_cmds}; do
49
+ if test_cmd "${__}"; then
50
+ test_cmd "pkg_${_pkg_name}_${1%:*}_pre" \
51
+ && "pkg_${_pkg_name}_${1%:*}_pre"
52
+ "${__}" ${_pkg_step_cmd_args};
53
+ test_cmd "pkg_${_pkg_name}_${1%:*}_post" \
54
+ && "pkg_${_pkg_name}_${1%:*}_post"
55
+ if [ "${1#*:}" != "always" ]\
56
+ && [ ${#} -ge 2 ]; then
57
+ set_build_script_done "${_pkg_name}" "${1%:*}" "-${2#*:}";
58
+ else
59
+ set_build_script_done "${_pkg_name}" "${1%:*}";
60
+ fi; break;
61
+ fi;
62
+ done;
63
+ shift; done;
64
+ fi); return ${?};
65
+ };
66
+
67
+ # vim:filetype=sh