#!/usr/bin/env bash
set -euo pipefail

sudo apt install curl ca-certificates -y
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /usr/share/keyrings/docker-archive-keyring.asc


# Load KVM module

modprobe kvm_intel

# ---------------------------------------------------------------------------
# Docker
# ---------------------------------------------------------------------------

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

# Install Docker Desktop (download latest .deb dynamically)
DOCKER_DESKTOP_URL="https://desktop.docker.com/linux/main/amd64/docker-desktop-amd64.deb"
curl -fsSL "$DOCKER_DESKTOP_URL" -o /tmp/docker-desktop-amd64.deb
sudo apt-get install -y /tmp/docker-desktop-amd64.deb
rm /tmp/docker-desktop-amd64.deb


# Install Docker Engine packages
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

sudo usermod -aG docker $USER

# ---------------------------------------------------------------------------
# VS Code (latest stable release)
# ---------------------------------------------------------------------------

VSCODE_URL="https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64"
curl -fsSL "$VSCODE_URL" -o /tmp/vscode-amd64.deb
sudo apt-get install -y /tmp/vscode-amd64.deb
rm /tmp/vscode-amd64.deb
