#!/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."