fix: remove hardcoded /home/jchery paths, use __OPENCODE_DIR__ template token resolved at install time
Command markdown files now use __OPENCODE_DIR__ placeholder instead of hardcoded user path. Both postinstall.js and install.sh perform template replacement when copying files to ~/.config/opencode/, making CI portable across any user/machine/container.
This commit is contained in:
+6
-3
@@ -70,7 +70,7 @@ copy_file() {
|
||||
return
|
||||
fi
|
||||
|
||||
cp "$src" "$dest"
|
||||
sed "s|__OPENCODE_DIR__|${OPENCODE_DIR}|g" "$src" > "$dest"
|
||||
COPIED=$((COPIED + 1))
|
||||
}
|
||||
|
||||
@@ -109,14 +109,16 @@ CI_JSON="${CI_DIR}/opencode.json"
|
||||
|
||||
if [ -f "$CI_JSON" ]; then
|
||||
if [ ! -f "$OPENCODE_JSON" ]; then
|
||||
cp "$CI_JSON" "$OPENCODE_JSON"
|
||||
sed "s|__OPENCODE_DIR__|${OPENCODE_DIR}|g" "$CI_JSON" > "$OPENCODE_JSON"
|
||||
echo " Created opencode.json"
|
||||
else
|
||||
if command -v node &>/dev/null; then
|
||||
local_ci_json="$(sed "s|__OPENCODE_DIR__|${OPENCODE_DIR}|g" "$CI_JSON")"
|
||||
echo "$local_ci_json" > /tmp/ci-json-merge.json
|
||||
node -e "
|
||||
const fs = require('fs');
|
||||
const existing = JSON.parse(fs.readFileSync('${OPENCODE_JSON}', 'utf8'));
|
||||
const ci = JSON.parse(fs.readFileSync('${CI_JSON}', 'utf8'));
|
||||
const ci = JSON.parse(fs.readFileSync('/tmp/ci-json-merge.json', 'utf8'));
|
||||
const merged = { ...existing };
|
||||
merged.permission = merged.permission || {};
|
||||
merged.permission.read = merged.permission.read || {};
|
||||
@@ -130,6 +132,7 @@ if [ -f "$CI_JSON" ]; then
|
||||
fs.writeFileSync('${OPENCODE_JSON}', JSON.stringify(merged, null, 2));
|
||||
console.log(' Merged permissions (preserved existing entries)');
|
||||
"
|
||||
rm -f /tmp/ci-json-merge.json
|
||||
else
|
||||
echo " Warning: node not found. Manually merge opencode.json permissions."
|
||||
echo " Add to opencode.json:"
|
||||
|
||||
Reference in New Issue
Block a user