Monorepo for Aesthetic.Computer
aesthetic.computer
1# DEPRECATED: Old Node.js + cli.js bundling path for Claude Code in AC Native OS.
2# Replaced by native binary bundling in ac-os (line ~82).
3# Archived from fedac/native/scripts/build-and-flash.sh on 2026-03-16.
4
5# ── Node.js + Claude Code CLI ──
6NODE_BIN="$(command -v node 2>/dev/null || true)"
7if [ -n "$NODE_BIN" ] && [ -f "$NODE_BIN" ]; then
8 log "Bundling Node.js for Claude Code CLI..."
9 cp "$NODE_BIN" "${INITRAMFS_DIR}/bin/node"
10 strip --strip-debug "${INITRAMFS_DIR}/bin/node" 2>/dev/null || true
11 chmod +x "${INITRAMFS_DIR}/bin/node"
12 for lib in $(ldd "$NODE_BIN" 2>/dev/null | grep -oP '/\S+'); do
13 [ -f "$lib" ] && cp -n "$lib" "${INITRAMFS_DIR}/lib64/" 2>/dev/null || true
14 done
15 NODE_SIZE=$(du -sh "${INITRAMFS_DIR}/bin/node" | cut -f1)
16 log " node: ${NODE_SIZE} ($(${NODE_BIN} --version))"
17
18 # Bundle Claude Code (x64-linux only, strip other platforms)
19 CLAUDE_PKG="$(npm root -g 2>/dev/null)/@anthropic-ai/claude-code"
20 if [ -d "$CLAUDE_PKG" ]; then
21 log "Bundling Claude Code CLI..."
22 CLAUDE_DIR="${INITRAMFS_DIR}/opt/claude-code"
23 mkdir -p "${CLAUDE_DIR}/vendor/ripgrep/x64-linux" \
24 "${CLAUDE_DIR}/vendor/tree-sitter-bash/x64-linux"
25 # Core files
26 cp "${CLAUDE_PKG}/cli.js" "${CLAUDE_DIR}/"
27 cp "${CLAUDE_PKG}/package.json" "${CLAUDE_DIR}/"
28 [ -f "${CLAUDE_PKG}/resvg.wasm" ] && cp "${CLAUDE_PKG}/resvg.wasm" "${CLAUDE_DIR}/"
29 # Vendor binaries (x64-linux only)
30 cp -r "${CLAUDE_PKG}/vendor/ripgrep/x64-linux/"* "${CLAUDE_DIR}/vendor/ripgrep/x64-linux/" 2>/dev/null || true
31 cp -r "${CLAUDE_PKG}/vendor/tree-sitter-bash/x64-linux/"* "${CLAUDE_DIR}/vendor/tree-sitter-bash/x64-linux/" 2>/dev/null || true
32 # Create claude wrapper
33 cat > "${INITRAMFS_DIR}/bin/claude" << 'CLAUDE_WRAPPER'
34#!/bin/sh
35export NODE_PATH=/opt/claude-code
36export HOME="${HOME:-/tmp}"
37export TERM="${TERM:-dumb}"
38exec /bin/node /opt/claude-code/cli.js "$@"
39CLAUDE_WRAPPER
40 chmod +x "${INITRAMFS_DIR}/bin/claude"
41 CLAUDE_SIZE=$(du -sh "${CLAUDE_DIR}" | cut -f1)
42 log " claude-code: ${CLAUDE_SIZE} (x64-linux only)"
43 else
44 warn "Claude Code not found globally — run: npm i -g @anthropic-ai/claude-code"
45 fi
46else
47 warn "Node.js not found — Claude Code CLI not available"
48fi