From 39edc252f055821e565fc052a88fe582a26f5953 Mon Sep 17 00:00:00 2001 From: Jeena Date: Tue, 13 Jan 2026 14:47:56 +0900 Subject: [PATCH] Simplify state persistence Use use local ./data directory instead of XDG directories. --- .gitignore | 1 + README.md | 2 +- docker-compose.yaml | 11 +---------- opencode.aliases | 10 ---------- 4 files changed, 3 insertions(+), 21 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1269488 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +data diff --git a/README.md b/README.md index b89f557..79a34af 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ the host. - Arch Linux–based image - Runs as the host user (same username, UID, GID) - Mounts only the current project directory (same absolute path inside container) -- Persists OpenCode state via XDG directories +- Persists OpenCode state in ./data directory - No access to SSH keys, passwords, or full `$HOME` - Simple shell function (`opencode`) to launch interactively diff --git a/docker-compose.yaml b/docker-compose.yaml index 415106f..d322953 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -15,10 +15,7 @@ services: tty: true environment: - XDG_DATA_HOME: "${XDG_DATA_HOME}" - XDG_CONFIG_HOME: "${XDG_CONFIG_HOME}" - XDG_STATE_HOME: "${XDG_STATE_HOME}" - XDG_CACHE_HOME: "${XDG_CACHE_HOME}" + HOME: "${PWD}/data" UID: "${UID}" GID: "${GID}" @@ -26,12 +23,6 @@ services: # Current project (read–write) - "${PWD}:${PWD}" - # OpenCode persistence (host directories, writable) - - "${XDG_DATA_HOME}/opencode:${XDG_DATA_HOME}/opencode" - - "${XDG_CONFIG_HOME}/opencode:${XDG_CONFIG_HOME}/opencode" - - "${XDG_STATE_HOME}/opencode:${XDG_STATE_HOME}/opencode" - - "${XDG_CACHE_HOME}/opencode:${XDG_CACHE_HOME}/opencode" - cap_drop: - ALL security_opt: diff --git a/opencode.aliases b/opencode.aliases index 48d5743..008d113 100644 --- a/opencode.aliases +++ b/opencode.aliases @@ -1,19 +1,9 @@ OPENCODE_CONTAINER_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)" opencode() { - # Set defaults if not already defined - : "${XDG_DATA_HOME:=$HOME/.local/share}" - : "${XDG_CONFIG_HOME:=$HOME/.config}" - : "${XDG_STATE_HOME:=$HOME/.local/state}" - : "${XDG_CACHE_HOME:=$HOME/.cache}" - UID=$(id -u) \ GID=$(id -g) \ USER=$(whoami) \ - XDG_DATA_HOME="$XDG_DATA_HOME" \ - XDG_CONFIG_HOME="$XDG_CONFIG_HOME" \ - XDG_STATE_HOME="$XDG_STATE_HOME" \ - XDG_CACHE_HOME="$XDG_CACHE_HOME" \ docker compose \ -f "$OPENCODE_CONTAINER_DIR/docker-compose.yaml" \ run --rm \