#!/usr/bin/env bash # Work workstation dev dependencies — Ubuntu 24.04 LTS (WSL) # Languages: C#, JavaScript, TypeScript, Node.js, HTML, CSS, React set -euo pipefail sudo apt-get update -q # --- Core tools --- # curl may not be present in a minimal WSL image sudo apt-get install -y \ emacs \ git \ ripgrep \ fd-find \ stow \ curl # Ubuntu names the fd binary 'fdfind'; add a user-local symlink so tooling finds it as 'fd' if command -v fdfind &>/dev/null && ! command -v fd &>/dev/null; then mkdir -p "$HOME/.local/bin" ln -sf "$(command -v fdfind)" "$HOME/.local/bin/fd" fi # --- .NET 10 (in Ubuntu 24.04 main repo — no extra source needed) --- sudo apt-get install -y dotnet-sdk-10.0 # C# language server (NuGet global tool) dotnet tool install --global csharp-ls 2>/dev/null \ || dotnet tool update --global csharp-ls # --- Node.js 22 LTS via nvm (Ubuntu 24.04 repos ship 20.x; nvm adds no apt sources) --- export NVM_DIR="${NVM_DIR:-$HOME/.nvm}" if [[ ! -d "$NVM_DIR" ]]; then curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash fi # shellcheck source=/dev/null source "$NVM_DIR/nvm.sh" nvm install 22 nvm alias default 22 nvm use default # --- JS / TS / HTML / CSS language servers and formatters --- npm install -g \ typescript \ typescript-language-server \ vscode-langservers-extracted \ prettier \ eslint echo "Work dev dependencies installed."