setup_env/install_java_dev.sh
Paul Trowbridge abaf266904 improve install scripts with modern practices and transparency
- Use modern signed-by method for PostgreSQL GPG keys
- Auto-detect latest Python 3 version from deadsnakes PPA
- Add command tracing (set -x) to show all commands as they run
- Display sudo commands upfront before execution
- Add user confirmation prompts (y/N) before installation
- Improve error handling with set -euo pipefail
- Add proper cleanup and verification steps
- Use pipx for VisiData installation
- Better output formatting with clear section headers

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-17 23:28:44 -05:00

82 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
echo "============================================"
echo "SDKMAN (Java Development) Installation Script"
echo "============================================"
echo ""
echo "This script will run the following commands with sudo:"
echo " - apt-get update"
echo " - apt-get install -y zip unzip curl"
echo ""
read -p "Continue with installation? (y/N) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Installation cancelled."
exit 0
fi
echo ""
echo "Starting installation (commands will be shown as they run)..."
echo ""
# Enable command tracing
set -x
# Install prerequisites
sudo apt-get update
sudo apt-get install -y zip unzip curl
set +x
# Check if SDKMAN is already installed
if [ -d "$HOME/.sdkman" ]; then
echo ""
echo "============================================"
echo "SDKMAN is already installed at ~/.sdkman"
echo "To update SDKMAN, run: sdk selfupdate"
echo "============================================"
exit 0
fi
# Install SDKMAN
echo "Installing SDKMAN..."
set -x
if ! curl -s "https://get.sdkman.io" | bash; then
set +x
echo "Error: SDKMAN installation failed" >&2
exit 1
fi
set +x
# Source SDKMAN to make it available in current session
export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
echo ""
echo "============================================"
# Verify installation
if [ -d "$HOME/.sdkman" ] && [ -f "$HOME/.sdkman/bin/sdkman-init.sh" ]; then
echo "SDKMAN installed successfully!"
echo ""
echo "To start using SDKMAN, either:"
echo " 1. Restart your shell, or"
echo " 2. Run: source ~/.bashrc"
echo ""
echo "Then you can install Java with:"
echo " sdk list java # List available Java versions"
echo " sdk install java # Install latest Java"
echo " sdk install java 21.0.1-tem # Install specific version"
echo ""
echo "Other useful SDKMAN commands:"
echo " sdk install gradle # Install Gradle"
echo " sdk install maven # Install Maven"
echo " sdk list # List all available SDKs"
else
echo "Error: SDKMAN installation verification failed" >&2
exit 1
fi
echo "============================================"