#!/bin/bash set -e function showHelp() { cat <&2 else echo -e "\e[31mInstall-DevRuntime\e[0m: $1" 1>&2 fi } function instDotNet() { say "Installing dotnet requirements..." "dotnet" sudo apt-get update > /dev/null sudo apt-get install --no-install-recommends -y \ libicu70 say "Downloading latest install script..." "dotnet" curl -fsSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh chmod +x /tmp/dotnet-install.sh say "Installing latest .NET Core LTS release..." "dotnet" /tmp/dotnet-install.sh --channel LTS echo 'export PATH=$PATH:/config/.dotnet' | sudo tee -a /etc/bash.bashrc > /dev/null say "Cleaning up..." "dotnet" sudo apt-get clean sudo rm -rf \ /tmp/* \ /var/lib/apt/lists/* \ /var/tmp/* say "dotnet done. " "dotnet" } function instGoLang() { if [[ -z "$1" ]]; then GOVERSION="1.19.3" else GOVERSION="$1" fi say "Downloading golang ($GOVERSION)..." "GoLang" curl -fsSL "https://go.dev/dl/go$GOVERSION.linux-amd64.tar.gz" -o /tmp/golang.tar.gz say "Installing golang ($GOVERSION)...." "GoLang" sudo rm -rf /usr/local/go sudo tar -C /usr/local -xzf /tmp/golang.tar.gz echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee -a /etc/bash.bashrc > /dev/null say "Cleaning up..." "GoLang" rm -f /tmp/golang.tar.gz say "done." "GoLang" say "Please reload bash profile to finalize." "GoLang" } function instNodeJs() { say "Adding nodesource package source (NodeJS LTS)..." "NodeJs" curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - say "Updating package lists and installing NodeJS LTS..." "NodeJs" sudo apt-get install --no-install-recommends -y \ nodejs say "Cleaning up..." "NodeJs" sudo apt-get clean sudo rm -rf \ /tmp/* \ /var/lib/apt/lists/* \ /var/tmp/* say "done." "NodeJs" } function instPwsh() { say "Installing PowerShell requirements..." "PowerShell" sudo apt-get install --no-install-recommends -y \ apt-transport-https \ software-properties-common say "Adding powershell package sources..." "PowerShell" # Download the Microsoft repository GPG keys curl -fsSL "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb" -o /tmp/packages-microsoft-prod.deb # Register the Microsoft repository GPG keys sudo dpkg -i /tmp/packages-microsoft-prod.deb # Update the list of packages after we added packages.microsoft.com sudo apt-get update say "Installing PowerShell..." "PowerShell" # Install PowerShell sudo apt-get install --no-install-recommends -y powershell echo "done." "PowerShell" } function setCodeSettings() { CODEFILE="$HOME/data/User/settings.json" say "Setting VScode base settings.($CODEFILE)" cat <