alfred-linux/config/hooks/live/0300-alfred-ide.hook.chroot
Alfred 18c2bfd5c6 Initial commit: Alfred Linux v4.0 build system
- build-unified.sh: master build script (16 hooks, kernel 7.0.0-rc7)
- config/package-lists: Debian package selections
- assets: Alfred Commander extension tarball
- docs: ARM64 investigation, kernel upgrade roadmap
2026-04-07 11:38:44 -04:00

95 lines
3.2 KiB
Bash

#!/bin/bash
# ═══════════════════════════════════════════════════════════════
# Alfred Linux v2.0-b3 — Alfred IDE (code-server) Integration
#
# Installs code-server + Alfred Commander extension.
# BUILD: v2.0-b3 (IDE)
# ═══════════════════════════════════════════════════════════════
set +e # IDE download may fail in chroot — don't kill the build
echo "[Alfred Linux v2.0-b3] Installing Alfred IDE (code-server)..."
# ── 1. Install code-server via official installer ──
export HOME=/root
curl -fsSL https://code-server.dev/install.sh | sh -s -- --method=standalone --prefix=/usr/local 2>&1 || {
echo "[WARN] Official installer failed, trying direct deb..."
# Fallback: download specific version
CODE_SERVER_VER="4.102.2"
wget -q "https://github.com/coder/code-server/releases/download/v${CODE_SERVER_VER}/code-server_${CODE_SERVER_VER}_amd64.deb" -O /tmp/code-server.deb
dpkg -i /tmp/code-server.deb || apt-get -f install -y
rm -f /tmp/code-server.deb
}
# ── 2. Pre-install Alfred Commander extension ──
EXTENSION_DIR="/etc/skel/.local/share/code-server/extensions"
mkdir -p "$EXTENSION_DIR"
if [[ -f /tmp/alfred-commander-1.0.1.tar.gz ]]; then
tar xzf /tmp/alfred-commander-1.0.1.tar.gz -C "$EXTENSION_DIR/"
echo "[Alfred IDE] Commander extension installed to skel"
else
echo "[WARN] Commander extension tarball not found in /tmp/"
fi
# ── 3. Configure code-server defaults ──
mkdir -p /etc/skel/.config/code-server
cat > /etc/skel/.config/code-server/config.yaml << 'CFG'
bind-addr: 127.0.0.1:8443
auth: password
password: alfred
cert: false
app-name: Alfred IDE
CFG
# ── 4. Systemd user service for auto-start ──
mkdir -p /etc/skel/.config/systemd/user
cat > /etc/skel/.config/systemd/user/code-server.service << 'SVC'
[Unit]
Description=Alfred IDE (code-server)
After=network.target
[Service]
Type=exec
ExecStart=/usr/local/bin/code-server
Restart=always
RestartSec=5
[Install]
WantedBy=default.target
SVC
# Enable for default user (will activate on first login)
mkdir -p /etc/skel/.config/systemd/user/default.target.wants
ln -sf ../code-server.service /etc/skel/.config/systemd/user/default.target.wants/code-server.service
# ── 5. Desktop shortcut ──
mkdir -p /etc/skel/Desktop
cat > /etc/skel/Desktop/alfred-ide.desktop << 'DESK'
[Desktop Entry]
Name=Alfred IDE
Comment=Sovereign Development Environment
Exec=xdg-open http://localhost:8443
Icon=accessories-text-editor
Type=Application
Categories=Development;IDE;
Terminal=false
StartupNotify=true
DESK
chmod +x /etc/skel/Desktop/alfred-ide.desktop
# Also add to system applications
cat > /usr/share/applications/alfred-ide.desktop << 'SYSDESK'
[Desktop Entry]
Name=Alfred IDE
Comment=Sovereign Development Environment
Exec=xdg-open http://localhost:8443
Icon=accessories-text-editor
Type=Application
Categories=Development;IDE;
Terminal=false
StartupNotify=true
MimeType=text/plain;application/x-shellscript;
SYSDESK
echo "[Alfred Linux v2.0-b3] Alfred IDE integration complete."