118bd20fec
The loader that sources ~/.config/pi/.env into every shell was only
living in the myconfigs tor-ms22 backup \u2014 a fresh machine had nowhere
to get it from except copying by hand. Now canonical here.
- extensions/pi/pi-env.zsh: 20-line POSIX-compatible loader
(set -a; source ~/.config/pi/.env; set +a). Works in bash and zsh.
- install.sh install_pi_env_loader:
* oh-my-zsh detected (~/.oh-my-zsh/custom/ exists)
\u2192 cp into that dir (NOT symlink \u2014 that dir is typically part of
a dotfiles backup, and a symlink to mempalace-toolkit would
break when restored on another host).
\u2192 Idempotent: if target content matches repo, says 'already
installed'. If it differs, leaves user edits alone and points
at diff for manual reconcile.
* No oh-my-zsh \u2192 prints source-this-line snippet for ~/.zshrc or
~/.bashrc (derived from $SHELL). Does NOT auto-edit rc files.
- install.sh uninstall: only removes the copy if content still matches
repo. Local edits preserved.
- Docs:
* extensions/pi/README.md Environment setup section rewritten with
both install paths, step 5 of deploy recipe updated.
* AGENTS.md Structure block lists pi-env.zsh.
* Root README repo-contents line mentions it.
Verified on tor-ms22: install fresh \u2192 uninstall (content match \u2192 remove)
\u2192 reinstall \u2192 zsh -ic loads AWS vars correctly. Also tested bash fallback
path via HOME=/tmp/fake-home SHELL=/bin/bash \u2014 prints right .bashrc snippet.
29 lines
1.2 KiB
Bash
29 lines
1.2 KiB
Bash
# Load pi coding-agent environment variables from ~/.config/pi/.env
|
|
#
|
|
# Canonical source: mempalace-toolkit/extensions/pi/pi-env.zsh
|
|
# Installed by mempalace-toolkit/install.sh via `cp` (not symlink) to keep
|
|
# ~/.oh-my-zsh/custom/ portable across machines with different $HOME paths.
|
|
# See extensions/pi/README.md#environment-setup for the full story.
|
|
#
|
|
# Sources ~/.config/pi/.env (AWS_PROFILE, AWS_REGION, and any future
|
|
# pi-scoped secrets) so pi's Bedrock provider works when spawned from any
|
|
# shell. The .env file itself is shipped (git-crypt encrypted) from the
|
|
# myconfigs dotfiles repo.
|
|
#
|
|
# `set -a` auto-exports every assignment in the sourced file, so plain
|
|
# KEY=VALUE lines become exported env vars without needing `export` in .env.
|
|
# Also works in bash (set -a and source are POSIX) — non-oh-my-zsh users
|
|
# can source this file directly from ~/.bashrc or ~/.zshrc instead.
|
|
#
|
|
# Historical note: these vars used to live in ~/.config/opencode/.env
|
|
# under a "# Environment variables for pi" block. Split out 2026-05-05
|
|
# so each tool owns its own env file.
|
|
|
|
_pi_env="${HOME}/.config/pi/.env"
|
|
if [[ -r "${_pi_env}" ]]; then
|
|
set -a
|
|
source "${_pi_env}"
|
|
set +a
|
|
fi
|
|
unset _pi_env
|