aboutsummaryrefslogtreecommitdiff
path: root/src/dotnet/scripts/string-helpers.sh
diff options
context:
space:
mode:
authorSteven <steven.liekens@gmail.com>2023-09-11 21:16:24 +0300
committerGitHub <noreply@github.com>2023-09-11 21:16:24 +0300
commit96c1eea40fc97b471ba0b33fcc79273c7ce586c7 (patch)
tree1ac35df447d38c00cb35e07a7b876dc985fc1329 /src/dotnet/scripts/string-helpers.sh
parent038bed3d58a84885da8a008b80905da17d57a543 (diff)
Use dotnet-install.sh in .NET feature (#628)feature_dotnet_2.0.0
* Use dotnet-install.sh in .NET feature * Use latest.version files * Cleanup runtime args * Use latest.version files in tests as well * Improve tests, remove code duplication * Add stderr helper * Validate version inputs * Use suggested description Co-authored-by: Samruddhi Khandale <samruddhikhandale@github.com> * Shorter version description Co-authored-by: Samruddhi Khandale <samruddhikhandale@github.com> * Shorter version description Co-authored-by: Samruddhi Khandale <samruddhikhandale@github.com> * Clean up apt lists * Verify 7.0 is latest * Fix PATH, add test for .NET global tools * Include a copy of dotnet-install.sh in the Feature * Configure useful env variables * Use stringly typed booleans * Keep imperative writing style in option hints * Update maintainers Co-authored-by: Samruddhi Khandale <samruddhikhandale@github.com> * Move dotnet-install.sh into a vendor directory * Refactor variables * Amend * Amend 2 * Use default options from devcontainer-feature.json * Add back variables * Fix shellchek warning in fetch_latest_sdk_version * Inline install_version function * Fix ShellCheck warnings * Improve CSV parsing * Default to latest when configuring an empty version * Add support for runtime-only configurations * Move 'none' check higher up * Deduplicate helper functions, sort into files * Address the user more directly in NOTES * Remove unnecessary defaults * Replace feature -> Feature Co-authored-by: Samruddhi Khandale <samruddhikhandale@github.com> * Add update-dotnet-install-script workflow * Apply suggestions from code review Co-authored-by: Samruddhi Khandale <samruddhikhandale@github.com> * Don't skip ci for automated script update --------- Co-authored-by: Samruddhi Khandale <samruddhikhandale@github.com>
Diffstat (limited to 'src/dotnet/scripts/string-helpers.sh')
-rw-r--r--src/dotnet/scripts/string-helpers.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/dotnet/scripts/string-helpers.sh b/src/dotnet/scripts/string-helpers.sh
new file mode 100644
index 0000000..35b4017
--- /dev/null
+++ b/src/dotnet/scripts/string-helpers.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+#-------------------------------------------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
+#-------------------------------------------------------------------------------------------------------------
+#
+# Docs: https://github.com/devcontainers/features/tree/main/src/dotnet
+# Maintainer: The Dev Container spec maintainers
+
+# Removes leading and trailing whitespace from an input string
+# Usage: trim_whitespace <text>
+trim_whitespace() {
+ text="$1"
+
+ # Remove leading spaces
+ while [ "${text:0:1}" == " " ]; do
+ text="${text:1}"
+ done
+
+ # Remove trailing spaces
+ while [ "${text: -1}" == " " ]; do
+ text="${text:0:-1}"
+ done
+
+ echo "$text"
+}
+
+# Splits comma-separated values into an array while ignoring empty entries
+# Usage: split_csv <comma-separated-values>
+split_csv() {
+ local -a values=()
+ while IFS="," read -ra entries; do
+ for entry in "${entries[@]}"; do
+ entry="$(trim_whitespace "$entry")"
+ if [ -n "$entry" ]; then
+ values+=("$entry")
+ fi
+ done
+ done <<< "$1"
+
+ echo "${values[@]}"
+} \ No newline at end of file