summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Rousskov <mark.simulacrum@gmail.com>2022-12-21 12:22:48 -0500
committerGitHub <noreply@github.com>2022-12-21 12:22:48 -0500
commit5b2eee7eed72b4894909c5eecbf014ea0b5ad995 (patch)
tree90568e8260574fdc46542d61037bc7ec31c36f56
parenta2e6c29543e63aed91017413e39fbdb22c666c8d (diff)
parent0ed563d4180e4e4431efe7bc02207c7fa5486764 (diff)
downloadrust-installer-5b2eee7eed72b4894909c5eecbf014ea0b5ad995.tar.gz
Merge pull request #119 from Mark-Simulacrum/fix-install
Fix --without-components with subsetted components
-rw-r--r--install-template.sh22
1 files changed, 20 insertions, 2 deletions
diff --git a/install-template.sh b/install-template.sh
index e68be89..7790541 100644
--- a/install-template.sh
+++ b/install-template.sh
@@ -921,9 +921,27 @@ fi
if [ -n "$CFG_WITHOUT" ]; then
without_components="$(echo "$CFG_WITHOUT" | sed "s/,/ /g")"
- for without_component in $without_components; do
- components="$(echo "$components" | sed "s/$without_component//" | sed "s/$without_component//")"
+
+ # This does **not** check that all components in without_components are
+ # actually present in the list of available components.
+ #
+ # Currently that's considered good as it makes it easier to be compatible
+ # with multiple Rust versions (which may change the exact list of
+ # components) when writing install scripts.
+ new_comp=""
+ for component in $components; do
+ found=false
+ for my_component in $without_components; do
+ if [ "$component" = "$my_component" ]; then
+ found=true
+ fi
+ done
+ if [ "$found" = false ]; then
+ # If we didn't find the component in without, then add it to new list.
+ new_comp="$new_comp $component"
+ fi
done
+ components="$new_comp"
fi
if [ -z "$components" ]; then