diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..397b4a7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.log diff --git a/ubuntu-provisioning.sh b/ubuntu-provisioning.sh index d0330c7..0c73e0d 100755 --- a/ubuntu-provisioning.sh +++ b/ubuntu-provisioning.sh @@ -8,7 +8,6 @@ NVIM_VERSION="0.12.4" GO_VERSION="1.27.0" FZF_VERSION="0.61.1" JUST_VERSION="1.40.0" -TREE_SITTER_VERSION="0.26.13" # ============================================================ # Global wget options @@ -26,6 +25,35 @@ cleanup() { } trap cleanup EXIT +# ============================================================ +# MSSQL Server setup +# ============================================================ +echo "=== MSSQL Server setup ===" +if [[ -x /opt/mssql/bin/mssql-conf ]] && ! systemctl is-active mssql-server >/dev/null 2>&1; then + echo 'export PATH=$PATH:/opt/mssql-tools18/bin' | sudo tee /etc/profile.d/mssql-tools.sh + read -rp "MSSQL Server is installed but not configured. Run setup now? [Y/n] " CONFIRM + if [[ "${CONFIRM:-Y}" =~ ^[Yy]$ ]]; then + sudo /opt/mssql/bin/mssql-conf setup + else + echo "*** Skipped. Run manually: sudo /opt/mssql/bin/mssql-conf setup ***" + fi +elif [[ -x /opt/mssql/bin/mssql-conf ]]; then + echo "mssql-server is already configured and running." + echo 'export PATH=$PATH:/opt/mssql-tools18/bin' | sudo tee /etc/profile.d/mssql-tools.sh +fi + +# ============================================================ +# DBeaver repository +# ============================================================ +echo "=== DBeaver repository ===" +if ! dpkg -s dbeaver-ce >/dev/null 2>&1; then + sudo wget -q -O - https://dbeaver.io/debs/dbeaver.gpg.key | \ + sudo gpg --dearmor -o /usr/share/keyrings/dbeaver.gpg.key + echo "deb [signed-by=/usr/share/keyrings/dbeaver.gpg.key] https://dbeaver.io/debs/dbeaver-ce /" | \ + sudo tee /etc/apt/sources.list.d/dbeaver.list +fi + + # ============================================================ # apt packages # ============================================================ @@ -47,7 +75,6 @@ APT_PACKAGES=( unzip zip util-linux - wl-clipboard ncurses-base libheif-examples libheif1 @@ -74,14 +101,19 @@ APT_PACKAGES=( bridge-utils apt-transport-https nodejs - openssh-server npm + openssh-server + mssql-server + mssql-tools18 + unixodbc-dev + dbeaver-ce ) + echo "=== apt packages ===" sudo apt-get update -y sudo apt-get upgrade -y -sudo apt-get install -y "${APT_PACKAGES[@]}" +ACCEPT_EULA=Y sudo apt-get install -y "${APT_PACKAGES[@]}" # ============================================================ # Add user to libvirt groups @@ -91,25 +123,13 @@ sudo usermod -aG libvirt,libvirt-qemu "$USER" || true echo "*** Added $USER to libvirt groups — log out/in required for effect. ***" # ============================================================ -# SQL Server (commented out — uncomment when running on 24.04) +# MSSQL Server setup # ============================================================ -# if ! dpkg -s mssql-server >/dev/null 2>&1; then -# curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc -# curl -fsSL https://packages.microsoft.com/config/ubuntu/24.04/mssql-server-2025.list \ -# | sudo tee /etc/apt/sources.list.d/mssql-server-2025.list -# sudo apt-get update -y -# sudo apt-get install -y mssql-server -# echo "*** mssql-server installed. Run: sudo /opt/mssql/bin/mssql-conf setup ***" -# fi -# -# if ! dpkg -s mssql-tools18 >/dev/null 2>&1; then -# wget -qO /tmp/packages-microsoft-prod.deb https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb -# sudo apt-get install -y /tmp/packages-microsoft-prod.deb -# sudo apt-get update -y -# ACCEPT_EULA=Y sudo apt-get install -y mssql-tools18 unixodbc-dev -# rm -f /tmp/packages-microsoft-prod.deb -# echo 'export PATH=$PATH:/opt/mssql-tools18/bin' | sudo tee /etc/profile.d/mssql-tools.sh -# fi +echo "=== MSSQL Server setup ===" +if [[ -x /opt/mssql/bin/mssql-conf ]]; then + echo "*** mssql-server installed. Run: sudo /opt/mssql/bin/mssql-conf setup ***" + echo 'export PATH=$PATH:/opt/mssql-tools18/bin' | sudo tee /etc/profile.d/mssql-tools.sh +fi # ============================================================ # Go @@ -147,21 +167,6 @@ fi [[ -f "$HOME/.cargo/env" ]] && source "$HOME/.cargo/env" rustup default stable -# ============================================================ -# tree-sitter-cli -# ============================================================ -echo "=== tree-sitter-cli ===" -TS_NEEDS_INSTALL=1 -if [[ -x "$HOME/.cargo/bin/tree-sitter" ]]; then - INSTALLED_TS=$("$HOME/.cargo/bin/tree-sitter" --version | awk '{print $2}') - if [[ "$INSTALLED_TS" == "$TREE_SITTER_VERSION" ]]; then - TS_NEEDS_INSTALL=0 - fi -fi -if [[ "$TS_NEEDS_INSTALL" -eq 1 ]]; then - "$HOME/.cargo/bin/cargo" install tree-sitter-cli --version "${TREE_SITTER_VERSION}" --locked --force -fi - # ============================================================ # just # ============================================================ @@ -234,6 +239,14 @@ if ! command -v task >/dev/null 2>&1; then sudo apt-get install -y task fi +# ============================================================ +# Ensure cargo is in PATH +# ============================================================ +if ! grep -q 'export PATH="$HOME/.cargo/bin:$PATH"' "$HOME/.bashrc"; then + printf '\nexport PATH="$HOME/.cargo/bin:$PATH"\n' >> "$HOME/.bashrc" + source "$HOME/.bashrc" +fi + # ============================================================ # Services # ============================================================ @@ -243,16 +256,8 @@ sudo systemctl enable --now ssh.service 2>/dev/null \ || true sudo systemctl enable --now libvirtd.service -# ============================================================ -# Ensure cargo is in PATH -# ============================================================ -if ! grep -q 'export PATH="$HOME/.cargo/bin:$PATH"' "$HOME/.bashrc"; then - printf '\nexport PATH="$HOME/.cargo/bin:$PATH"\n' >> "$HOME/.bashrc" - source "$HOME/.bashrc" -fi - # ============================================================ echo "=== Done ===" echo "Log out and back in for libvirt group to take effect." -echo "Rust and Cargo are at ~/.cargo/bin — add to PATH if not already:" -echo ' export PATH="$HOME/.cargo/bin:$PATH"' +echo "Rust and Cargo are at ~/.cargo/bin — added to .bashrc." +echo "If mssql-server was installed, run: sudo /opt/mssql/bin/mssql-conf setup"