From 765ea6807de517f66a98a952f9c47d563f1fa1ec Mon Sep 17 00:00:00 2001 From: Christian-Manuel Butzke Date: Wed, 17 Jun 2026 23:58:16 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20move=20AI/dev=20packages=20to=20eve?= =?UTF-8?q?-plugins-ai=20(v4.2=20=C2=A75)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove claude, codex-cli, goose, hermes, opencode, dev-toolchain, vscode — they now live in eve-plugins-ai. This repo keeps desktops, remote access, media, and generic Linux tooling. --- claude/commands/ubuntu/down | 4 -- claude/commands/ubuntu/status | 4 -- claude/eve-plugin.yaml | 15 ------- claude/provision/ubuntu/claude.sh | 41 ------------------- codex-cli/commands/ubuntu/down | 4 -- codex-cli/commands/ubuntu/status | 4 -- codex-cli/eve-plugin.yaml | 15 ------- codex-cli/provision/ubuntu/codex-cli.sh | 22 ---------- dev-toolchain/commands/ubuntu/down | 4 -- dev-toolchain/commands/ubuntu/status | 4 -- dev-toolchain/eve-plugin.yaml | 17 -------- .../provision/ubuntu/dev-toolchain.sh | 28 ------------- goose/commands/ubuntu/down | 4 -- goose/commands/ubuntu/status | 4 -- goose/eve-plugin.yaml | 15 ------- goose/provision/ubuntu/goose.sh | 41 ------------------- hermes/commands/ubuntu/down | 4 -- hermes/commands/ubuntu/status | 4 -- hermes/eve-plugin.yaml | 14 ------- hermes/provision/ubuntu/hermes.sh | 18 -------- opencode/commands/ubuntu/down | 4 -- opencode/commands/ubuntu/status | 4 -- opencode/eve-plugin.yaml | 14 ------- opencode/provision/ubuntu/opencode.sh | 18 -------- vscode/commands/ubuntu/down | 4 -- vscode/commands/ubuntu/status | 4 -- vscode/eve-plugin.yaml | 14 ------- vscode/provision/ubuntu/vscode.sh | 28 ------------- 28 files changed, 356 deletions(-) delete mode 100755 claude/commands/ubuntu/down delete mode 100755 claude/commands/ubuntu/status delete mode 100644 claude/eve-plugin.yaml delete mode 100755 claude/provision/ubuntu/claude.sh delete mode 100755 codex-cli/commands/ubuntu/down delete mode 100755 codex-cli/commands/ubuntu/status delete mode 100644 codex-cli/eve-plugin.yaml delete mode 100755 codex-cli/provision/ubuntu/codex-cli.sh delete mode 100755 dev-toolchain/commands/ubuntu/down delete mode 100755 dev-toolchain/commands/ubuntu/status delete mode 100644 dev-toolchain/eve-plugin.yaml delete mode 100755 dev-toolchain/provision/ubuntu/dev-toolchain.sh delete mode 100755 goose/commands/ubuntu/down delete mode 100755 goose/commands/ubuntu/status delete mode 100644 goose/eve-plugin.yaml delete mode 100755 goose/provision/ubuntu/goose.sh delete mode 100755 hermes/commands/ubuntu/down delete mode 100755 hermes/commands/ubuntu/status delete mode 100644 hermes/eve-plugin.yaml delete mode 100755 hermes/provision/ubuntu/hermes.sh delete mode 100755 opencode/commands/ubuntu/down delete mode 100755 opencode/commands/ubuntu/status delete mode 100644 opencode/eve-plugin.yaml delete mode 100755 opencode/provision/ubuntu/opencode.sh delete mode 100755 vscode/commands/ubuntu/down delete mode 100755 vscode/commands/ubuntu/status delete mode 100644 vscode/eve-plugin.yaml delete mode 100755 vscode/provision/ubuntu/vscode.sh diff --git a/claude/commands/ubuntu/down b/claude/commands/ubuntu/down deleted file mode 100755 index 4702d8c..0000000 --- a/claude/commands/ubuntu/down +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-down-command claude 'npm uninstall -g @anthropic-ai/claude-code || true; sudo rm -f "$EVE_HUMAN_HOME/.local/bin/claude"' diff --git a/claude/commands/ubuntu/status b/claude/commands/ubuntu/status deleted file mode 100755 index ee74908..0000000 --- a/claude/commands/ubuntu/status +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-status-command claude 'if eve_human_run sh -lc "command -v claude >/dev/null 2>&1 || [ -x \"\$HOME/.local/bin/claude\" ]"; then echo installed; else echo missing; fi' diff --git a/claude/eve-plugin.yaml b/claude/eve-plugin.yaml deleted file mode 100644 index 6e2270e..0000000 --- a/claude/eve-plugin.yaml +++ /dev/null @@ -1,15 +0,0 @@ -api_version: eve.plugin/v1 -kind: package -id: claude -display_name: Claude Code -commands: - install: {exec: scripts/package-plugin, args: [claude, install]} - status: {exec: scripts/package-plugin, args: [claude, status]} - down: {exec: scripts/package-plugin, args: [claude, down]} -supports: {os_families: [ubuntu]} -depends_on: [dev-toolchain] -down: {destructive: true} -env: [] -install: - ubuntu: - steps: [base.sh, timezone.sh, provision/ubuntu/claude.sh] diff --git a/claude/provision/ubuntu/claude.sh b/claude/provision/ubuntu/claude.sh deleted file mode 100755 index 0aabed0..0000000 --- a/claude/provision/ubuntu/claude.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -# shellcheck source=../lib/common.sh -. "$PROVISION_ROOT/scripts/lib/common.sh" - -skip_unless_pkg claude - -log "### claude: installing Claude Code CLI" - -if human_run sh -lc 'command -v claude >/dev/null 2>&1'; then - log "claude already installed — skipping" - exit 0 -fi - -human_install_dir -m 0755 "$HUMAN_HOME/.cache" "$HUMAN_HOME/.cache/claude" -human_install_dir -m 0755 "$HUMAN_HOME/.config" "$HUMAN_HOME/.local" "$HUMAN_HOME/.local/bin" - -claude_present() { - human_run sh -lc 'command -v claude >/dev/null 2>&1 || [ -x "$HOME/.local/bin/claude" ]' -} - -# Try the native installer first. On arm64 Linux it currently prints -# "Installation complete!" without actually delivering a binary, so we -# verify with a real claude_present check after either path. -human_run sh -lc 'curl -fsSL https://claude.ai/install.sh | bash' || true - -if ! claude_present; then - log "Claude native installer did not produce a binary; trying npm fallback" - if ! command -v npm >/dev/null 2>&1; then - log "npm not found - select dev-toolchain together with claude so the fallback can run" - exit 1 - fi - sudo npm install -g @anthropic-ai/claude-code -fi - -if ! claude_present; then - log "claude command not found after installation" - exit 1 -fi - -log "### claude: done" diff --git a/codex-cli/commands/ubuntu/down b/codex-cli/commands/ubuntu/down deleted file mode 100755 index 5343b2c..0000000 --- a/codex-cli/commands/ubuntu/down +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-down-command codex-cli 'npm uninstall -g @openai/codex || true; sudo rm -f "$EVE_HUMAN_HOME/.local/bin/codex"' diff --git a/codex-cli/commands/ubuntu/status b/codex-cli/commands/ubuntu/status deleted file mode 100755 index faf289b..0000000 --- a/codex-cli/commands/ubuntu/status +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-status-command codex-cli 'if eve_human_run sh -lc "command -v codex >/dev/null 2>&1 || [ -x \"\$HOME/.local/bin/codex\" ]"; then echo installed; else echo missing; fi' diff --git a/codex-cli/eve-plugin.yaml b/codex-cli/eve-plugin.yaml deleted file mode 100644 index 4a0b851..0000000 --- a/codex-cli/eve-plugin.yaml +++ /dev/null @@ -1,15 +0,0 @@ -api_version: eve.plugin/v1 -kind: package -id: codex-cli -display_name: Codex CLI -commands: - install: {exec: scripts/package-plugin, args: [codex-cli, install]} - status: {exec: scripts/package-plugin, args: [codex-cli, status]} - down: {exec: scripts/package-plugin, args: [codex-cli, down]} -supports: {os_families: [ubuntu]} -depends_on: [dev-toolchain] -down: {destructive: true} -env: [] -install: - ubuntu: - steps: [base.sh, timezone.sh, provision/ubuntu/codex-cli.sh] diff --git a/codex-cli/provision/ubuntu/codex-cli.sh b/codex-cli/provision/ubuntu/codex-cli.sh deleted file mode 100755 index 60c3009..0000000 --- a/codex-cli/provision/ubuntu/codex-cli.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -# shellcheck source=../lib/common.sh -. "$PROVISION_ROOT/scripts/lib/common.sh" - -skip_unless_pkg codex-cli - -log "### codex-cli: installing @openai/codex" - -if ! command -v npm >/dev/null 2>&1; then - log "npm not found — ensure dev-toolchain bundle is included before codex-cli" - exit 1 -fi - -if command -v codex >/dev/null 2>&1; then - log "codex already installed — skipping" - exit 0 -fi - -sudo npm install -g @openai/codex - -log "### codex-cli: done" diff --git a/dev-toolchain/commands/ubuntu/down b/dev-toolchain/commands/ubuntu/down deleted file mode 100755 index 0caecc8..0000000 --- a/dev-toolchain/commands/ubuntu/down +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-down-command dev-toolchain 'rustup self uninstall -y || true; sudo apt-get remove -y build-essential pkg-config libssl-dev || true' diff --git a/dev-toolchain/commands/ubuntu/status b/dev-toolchain/commands/ubuntu/status deleted file mode 100755 index 66d1074..0000000 --- a/dev-toolchain/commands/ubuntu/status +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-status-command dev-toolchain 'if command -v gcc >/dev/null 2>&1 && command -v make >/dev/null 2>&1 && eve_human_run sh -lc "command -v rustup >/dev/null 2>&1"; then echo installed; else echo missing; fi' diff --git a/dev-toolchain/eve-plugin.yaml b/dev-toolchain/eve-plugin.yaml deleted file mode 100644 index 5bb9174..0000000 --- a/dev-toolchain/eve-plugin.yaml +++ /dev/null @@ -1,17 +0,0 @@ -api_version: eve.plugin/v1 -kind: package -id: dev-toolchain -display_name: Developer Toolchain -commands: - install: {exec: scripts/package-plugin, args: [dev-toolchain, install]} - status: {exec: scripts/package-plugin, args: [dev-toolchain, status]} - down: {exec: scripts/package-plugin, args: [dev-toolchain, down]} -supports: {os_families: [ubuntu]} -down: {destructive: true} -env: [] -install: - ubuntu: - steps: [base.sh, timezone.sh, provision/ubuntu/dev-toolchain.sh] -bundles: - - id: dev-ai - includes: [docker, dev-toolchain, goose, claude, codex-cli, hermes, opencode, vscode] diff --git a/dev-toolchain/provision/ubuntu/dev-toolchain.sh b/dev-toolchain/provision/ubuntu/dev-toolchain.sh deleted file mode 100755 index c8c52e4..0000000 --- a/dev-toolchain/provision/ubuntu/dev-toolchain.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -# shellcheck source=../lib/common.sh -. "$PROVISION_ROOT/scripts/lib/common.sh" - -skip_unless_pkg dev-toolchain - -log "### dev-toolchain: build tools + language toolchains" - -apt_update_once -apt_install build-essential pkg-config libssl-dev python3 python3-pip python3-venv - -if ! command -v node >/dev/null 2>&1; then - log "installing Node.js (NodeSource LTS)" - download https://deb.nodesource.com/setup_lts.x "$DOWNLOADS_DIR/nodesource_setup_lts.sh" - sudo -E bash "$DOWNLOADS_DIR/nodesource_setup_lts.sh" - apt_install nodejs -fi - -if ! human_run sh -lc 'command -v rustc >/dev/null 2>&1'; then - log "installing Rust (rustup)" - download https://sh.rustup.rs "$DOWNLOADS_DIR/rustup-init.sh" - human_install_dir -m 0755 "$HUMAN_HOME/.cache/eve" - sudo install -o "$HUMAN_USER_NAME" -g "$HUMAN_GROUP" -m 0755 "$DOWNLOADS_DIR/rustup-init.sh" "$HUMAN_HOME/.cache/eve/rustup-init.sh" - human_run sh "$HUMAN_HOME/.cache/eve/rustup-init.sh" -y --default-toolchain stable --profile minimal -fi - -log "### dev-toolchain: done" diff --git a/goose/commands/ubuntu/down b/goose/commands/ubuntu/down deleted file mode 100755 index a1a29fb..0000000 --- a/goose/commands/ubuntu/down +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-down-command goose 'sudo rm -f "$EVE_HUMAN_HOME/.local/bin/goose"' diff --git a/goose/commands/ubuntu/status b/goose/commands/ubuntu/status deleted file mode 100755 index d193f86..0000000 --- a/goose/commands/ubuntu/status +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-status-command goose 'if eve_human_run sh -lc "command -v goose >/dev/null 2>&1 || [ -x \"\$HOME/.local/bin/goose\" ]"; then echo installed; else echo missing; fi' diff --git a/goose/eve-plugin.yaml b/goose/eve-plugin.yaml deleted file mode 100644 index 365cd7a..0000000 --- a/goose/eve-plugin.yaml +++ /dev/null @@ -1,15 +0,0 @@ -api_version: eve.plugin/v1 -kind: package -id: goose -display_name: Goose -commands: - install: {exec: scripts/package-plugin, args: [goose, install]} - status: {exec: scripts/package-plugin, args: [goose, status]} - down: {exec: scripts/package-plugin, args: [goose, down]} -supports: {os_families: [ubuntu], arches: [amd64, arm64]} -depends_on: [dev-toolchain] -down: {destructive: true} -env: [] -install: - ubuntu: - steps: [base.sh, timezone.sh, provision/ubuntu/goose.sh] diff --git a/goose/provision/ubuntu/goose.sh b/goose/provision/ubuntu/goose.sh deleted file mode 100755 index 26da6f2..0000000 --- a/goose/provision/ubuntu/goose.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -# shellcheck source=../lib/common.sh -. "$PROVISION_ROOT/scripts/lib/common.sh" - -skip_unless_pkg goose - -log "### goose: installing Goose CLI" - -if human_run sh -lc 'command -v goose >/dev/null 2>&1'; then - log "goose already installed — skipping" - exit 0 -fi - -apt_install bzip2 - -human_run sh -lc ' -set -euo pipefail -cd "$HOME" -case "$(uname -m)" in - aarch64|arm64) target="aarch64-unknown-linux-gnu" ;; - x86_64|amd64) target="x86_64-unknown-linux-gnu" ;; - *) echo "unsupported Goose architecture: $(uname -m)" >&2; exit 1 ;; -esac -tmpdir="$(mktemp -d)" -trap "rm -rf \"$tmpdir\"" EXIT -asset="goose-${target}.tar.bz2" -url="https://github.com/aaif-goose/goose/releases/download/stable/${asset}" -mkdir -p "$HOME/.local/bin" -curl -fL --retry 3 --retry-delay 2 -o "$tmpdir/$asset" "$url" -tar -xjf "$tmpdir/$asset" -C "$tmpdir" -binary="$(find "$tmpdir" -type f -name goose -perm -111 | head -n 1)" -if [ -z "$binary" ]; then - echo "Goose archive did not contain an executable goose binary" >&2 - exit 1 -fi -install -m 0755 "$binary" "$HOME/.local/bin/goose" -"$HOME/.local/bin/goose" --version -' - -log "### goose: done" diff --git a/hermes/commands/ubuntu/down b/hermes/commands/ubuntu/down deleted file mode 100755 index fa17966..0000000 --- a/hermes/commands/ubuntu/down +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-down-command hermes 'sudo rm -f "$EVE_HUMAN_HOME/.local/bin/hermes"' diff --git a/hermes/commands/ubuntu/status b/hermes/commands/ubuntu/status deleted file mode 100755 index dc7bf77..0000000 --- a/hermes/commands/ubuntu/status +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-status-command hermes 'if eve_human_run sh -lc "command -v hermes >/dev/null 2>&1 || [ -x \"\$HOME/.local/bin/hermes\" ]"; then echo installed; else echo missing; fi' diff --git a/hermes/eve-plugin.yaml b/hermes/eve-plugin.yaml deleted file mode 100644 index c29995c..0000000 --- a/hermes/eve-plugin.yaml +++ /dev/null @@ -1,14 +0,0 @@ -api_version: eve.plugin/v1 -kind: package -id: hermes -display_name: Hermes -commands: - install: {exec: scripts/package-plugin, args: [hermes, install]} - status: {exec: scripts/package-plugin, args: [hermes, status]} - down: {exec: scripts/package-plugin, args: [hermes, down]} -supports: {os_families: [ubuntu]} -down: {destructive: true} -env: [] -install: - ubuntu: - steps: [base.sh, timezone.sh, provision/ubuntu/hermes.sh] diff --git a/hermes/provision/ubuntu/hermes.sh b/hermes/provision/ubuntu/hermes.sh deleted file mode 100755 index 4eba416..0000000 --- a/hermes/provision/ubuntu/hermes.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -# shellcheck source=../lib/common.sh -. "$PROVISION_ROOT/scripts/lib/common.sh" - -skip_unless_pkg hermes - -log "### hermes: installing Hermes agent" - -if human_run sh -lc 'command -v hermes >/dev/null 2>&1'; then - log "hermes already installed — skipping" - exit 0 -fi - -human_install_dir -m 0755 "$HUMAN_HOME/.cache" "$HUMAN_HOME/.config" "$HUMAN_HOME/.local" "$HUMAN_HOME/.local/bin" -human_run sh -lc 'curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash' - -log "### hermes: done" diff --git a/opencode/commands/ubuntu/down b/opencode/commands/ubuntu/down deleted file mode 100755 index e49b0fa..0000000 --- a/opencode/commands/ubuntu/down +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-down-command opencode 'npm uninstall -g opencode-ai || true; sudo rm -f "$EVE_HUMAN_HOME/.local/bin/opencode"' diff --git a/opencode/commands/ubuntu/status b/opencode/commands/ubuntu/status deleted file mode 100755 index a9595c0..0000000 --- a/opencode/commands/ubuntu/status +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-status-command opencode 'if eve_human_run sh -lc "command -v opencode >/dev/null 2>&1 || [ -x \"\$HOME/.local/bin/opencode\" ] || [ -x \"\$HOME/.opencode/bin/opencode\" ] || find \"\$HOME\" -maxdepth 4 -type f -name opencode -perm -111 -print -quit 2>/dev/null | grep -q ."; then echo installed; else echo missing; fi' diff --git a/opencode/eve-plugin.yaml b/opencode/eve-plugin.yaml deleted file mode 100644 index 0d2adbb..0000000 --- a/opencode/eve-plugin.yaml +++ /dev/null @@ -1,14 +0,0 @@ -api_version: eve.plugin/v1 -kind: package -id: opencode -display_name: OpenCode -commands: - install: {exec: scripts/package-plugin, args: [opencode, install]} - status: {exec: scripts/package-plugin, args: [opencode, status]} - down: {exec: scripts/package-plugin, args: [opencode, down]} -supports: {os_families: [ubuntu]} -down: {destructive: true} -env: [] -install: - ubuntu: - steps: [base.sh, timezone.sh, provision/ubuntu/opencode.sh] diff --git a/opencode/provision/ubuntu/opencode.sh b/opencode/provision/ubuntu/opencode.sh deleted file mode 100755 index 4e28193..0000000 --- a/opencode/provision/ubuntu/opencode.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -# shellcheck source=../lib/common.sh -. "$PROVISION_ROOT/scripts/lib/common.sh" - -skip_unless_pkg opencode - -log "### opencode: installing OpenCode CLI" - -if human_run sh -lc 'command -v opencode >/dev/null 2>&1'; then - log "opencode already installed — skipping" - exit 0 -fi - -human_install_dir -m 0755 "$HUMAN_HOME/.cache" "$HUMAN_HOME/.config" "$HUMAN_HOME/.local" "$HUMAN_HOME/.local/bin" -human_run sh -lc 'curl -fsSL https://opencode.ai/install | bash' - -log "### opencode: done" diff --git a/vscode/commands/ubuntu/down b/vscode/commands/ubuntu/down deleted file mode 100755 index aebb1da..0000000 --- a/vscode/commands/ubuntu/down +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-down-command vscode 'sudo apt-get remove -y code || true' diff --git a/vscode/commands/ubuntu/status b/vscode/commands/ubuntu/status deleted file mode 100755 index d9731d3..0000000 --- a/vscode/commands/ubuntu/status +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -eu - -exec ./scripts/package-status-command vscode 'if command -v code >/dev/null 2>&1; then echo installed; else echo missing; fi' diff --git a/vscode/eve-plugin.yaml b/vscode/eve-plugin.yaml deleted file mode 100644 index 75d92bb..0000000 --- a/vscode/eve-plugin.yaml +++ /dev/null @@ -1,14 +0,0 @@ -api_version: eve.plugin/v1 -kind: package -id: vscode -display_name: Visual Studio Code -commands: - install: {exec: scripts/package-plugin, args: [vscode, install]} - status: {exec: scripts/package-plugin, args: [vscode, status]} - down: {exec: scripts/package-plugin, args: [vscode, down]} -supports: {os_families: [ubuntu]} -down: {destructive: true} -env: [] -install: - ubuntu: - steps: [base.sh, timezone.sh, provision/ubuntu/vscode.sh] diff --git a/vscode/provision/ubuntu/vscode.sh b/vscode/provision/ubuntu/vscode.sh deleted file mode 100755 index 16fdf3f..0000000 --- a/vscode/provision/ubuntu/vscode.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -# shellcheck source=../lib/common.sh -. "$PROVISION_ROOT/scripts/lib/common.sh" - -skip_unless_pkg vscode - -log "### vscode: installing Visual Studio Code" - -if command -v code >/dev/null 2>&1; then - log "vscode already installed — skipping" - exit 0 -fi - -apt_install wget gpg - -wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft.gpg -sudo sh -c 'echo "Types: deb -URIs: https://packages.microsoft.com/repos/code -Suites: stable -Components: main -Architectures: amd64,arm64,armhf -Signed-By: /usr/share/keyrings/microsoft.gpg" > /etc/apt/sources.list.d/vscode.sources' - -sudo DEBIAN_FRONTEND=noninteractive apt-get update -y -apt_install code - -log "### vscode: done"