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

node_version="$(cat .node-version)"
node_dir="$HOME/.local/node-v${node_version}-linux-x64"

if [[ ! -x "$node_dir/bin/node" ]]; then
    archive="/tmp/node-v${node_version}-linux-x64.tar.xz"
    curl -fsSLo "$archive" "https://nodejs.org/dist/v${node_version}/node-v${node_version}-linux-x64.tar.xz"
    mkdir -p "$HOME/.local"
    tar -xJf "$archive" -C "$HOME/.local"
    rm -f "$archive"
fi

export PATH="$node_dir/bin:$PATH"
corepack enable --install-directory "$node_dir/bin"
pnpm setup

profile_marker="# Ghost orb Node.js"
profile_export="export PATH=\"$node_dir/bin:\$PATH\""
if grep -Fqx "$profile_marker" "$HOME/.bash_profile" 2>/dev/null; then
    sed -i "/^${profile_marker}$/ { n; c\\
$profile_export
    }" "$HOME/.bash_profile"
else
    cat >> "$HOME/.bash_profile" <<EOF

$profile_marker
$profile_export
EOF
fi

if ! /usr/bin/docker compose version >/dev/null 2>&1; then
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
    sudo apt-get update
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
fi
