summaryrefslogtreecommitdiffstats
path: root/src/profile
diff options
context:
space:
mode:
authorPatrick McDermott <patrick.mcdermott@libiquity.com>2021-01-16 05:20:21 (EST)
committer Patrick McDermott <patrick.mcdermott@libiquity.com>2021-01-16 05:42:04 (EST)
commit45e8fd75c621899365406141d9b9fe0aab0183e0 (patch)
tree4062d98de17994484b740db259ef95902f76b789 /src/profile
parent8ab731bb1d411fd5a11eb8278ad344f7f8bd47c6 (diff)
profile_prepare_install(): New function
profile_installer_type() will be the first caller of _prof_proteanos_get_platforms() to be called, but it will be called in a subshell. As a result, _prof_proteanos_get_platforms() would be called twice. To solve this, factor out _prof_proteanos_get_platforms() calls from other functions, making them pure (subshell-safe).
Diffstat (limited to 'src/profile')
-rw-r--r--src/profile/proteanos.sh34
1 files changed, 15 insertions, 19 deletions
diff --git a/src/profile/proteanos.sh b/src/profile/proteanos.sh
index 0f34f5d..e208464 100644
--- a/src/profile/proteanos.sh
+++ b/src/profile/proteanos.sh
@@ -77,20 +77,6 @@ _prof_proteanos_platforms_paragraph()
)\"\${_prof_proteanos_platforms_sections}\""
}
-_prof_proteanos_get_platforms()
-{
- local mirror="${1}"
- local suite="${2}"
- shift 2
-
- [ -n "${_prof_proteanos_platforms}" ] && return
-
- parse_control - _prof_proteanos_platforms_field \
- _prof_proteanos_platforms_paragraph 0<<-EOF
- $(${WGET} -q -O - -- "${mirror}/feeds/${suite}/Platforms")
- EOF
-}
-
prof_proteanos_detect_root()
{
local root="${1}"
@@ -162,6 +148,20 @@ prof_proteanos_select_mirror()
printf '%s\n' "${mirrors}" | sed -n "${mirror_num}p"
}
+prof_proteanos_prepare_install()
+{
+ local mirror="${1}"
+ local suite="${2}"
+ shift 2
+
+ [ -n "${_prof_proteanos_platforms}" ] && return
+
+ parse_control - _prof_proteanos_platforms_field \
+ _prof_proteanos_platforms_paragraph 0<<-EOF
+ $(${WGET} -q -O - -- "${mirror}/feeds/${suite}/Platforms")
+ EOF
+}
+
prof_proteanos_installer_type()
{
local mirror="${1}"
@@ -174,13 +174,12 @@ prof_proteanos_installer_type()
local archplat=
local installer_type=
- _prof_proteanos_get_platforms "${mirror}" "${suite}"
arch_clean="$(printf '%s' "${arch}" | tr -c '[a-z0-9/]' '_')"
plat_clean="$(printf '%s' "${plat}" | tr -c '[a-z0-9/]' '_')"
archplat="${arch_clean}__${plat_clean}"
eval "installer_type=\"\${_prof_proteanos_archplat_type_${archplat}}\""
- return "${installer_type}"
+ printf '%s' "${installer_type}"
}
prof_proteanos_validate_archplat()
@@ -192,8 +191,6 @@ prof_proteanos_validate_archplat()
shift 4
local archplat=
- _prof_proteanos_get_platforms "${mirror}" "${suite}"
-
case " ${_prof_proteanos_platforms} " in
*" ${arch}/${plat} "*)
return 0
@@ -231,7 +228,6 @@ prof_proteanos_feeds()
local p=
local s=
- _prof_proteanos_get_platforms "${mirror}" "${suite}"
arch_clean="$(printf '%s' "${arch}" | tr -c '[a-z0-9/]' '_')"
plat_clean="$(printf '%s' "${plat}" | tr -c '[a-z0-9/]' '_')"
archplat="${arch_clean}__${plat_clean}"