Fix GNOME extension bundle registration
Rolling release / release (push) Successful in 6m7s

This commit is contained in:
2026-09-11 18:43:45 -04:00
parent 7f92e3311b
commit 8c17112fa8
3 changed files with 33 additions and 6 deletions
+26 -5
View File
@@ -23,15 +23,18 @@ if [[ -z "${BARE_BIN}" || ! -x "${BARE_BIN}" ]]; then
exit 1
fi
chmod 755 "${BARE_BIN}"
rm -rf "${EXT_DIR}"
mkdir -p "${EXT_DIR}"
EXT_TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/jarvis-extension.XXXXXX")"
EXT_ZIP="${EXT_TMP_DIR}/jarvis-extension.zip"
cleanup_ext() { rm -rf "${EXT_TMP_DIR}"; }
trap cleanup_ext EXIT
( cd "${ROOT_DIR}/apps/gnome-extension" && zip -q -r "${EXT_ZIP}" "[email protected]" )
if command -v gnome-extensions >/dev/null && gnome-extensions install --force "${EXT_ZIP}" >/dev/null 2>&1; then
:
( cd "${ROOT_DIR}/apps/gnome-extension/[email protected]" && zip -q -r "${EXT_ZIP}" . )
rm -rf "${EXT_DIR}"
mkdir -p "${EXT_DIR}"
if command -v gnome-extensions >/dev/null; then
if ! gnome-extensions install --force "${EXT_ZIP}"; then
echo "GNOME extension registration failed; installing the files directly." >&2
cp -a "${ROOT_DIR}/apps/gnome-extension/[email protected]/." "${EXT_DIR}/"
fi
else
cp -a "${ROOT_DIR}/apps/gnome-extension/[email protected]/." "${EXT_DIR}/"
fi
@@ -46,6 +49,24 @@ if [[ "${1:-}" == "--enable" ]]; then
systemctl --user daemon-reload
systemctl --user enable jarvisd.service
systemctl --user restart jarvisd.service
if command -v gnome-extensions >/dev/null && gnome-extensions enable [email protected] >/dev/null 2>&1; then
echo "GNOME extension enabled."
elif command -v gsettings >/dev/null && gsettings writable org.gnome.shell enabled-extensions >/dev/null 2>&1; then
# A running GNOME Shell keeps its extension catalogue until the next
# session. Persist the enabled state so the extension starts on login.
ENABLED_EXTENSIONS="$(gsettings get org.gnome.shell enabled-extensions 2>/dev/null || printf '[]')"
if [[ "${ENABLED_EXTENSIONS}" != *"[email protected]"* ]]; then
if [[ "${ENABLED_EXTENSIONS}" == "[]" ]]; then
ENABLED_EXTENSIONS="['[email protected]']"
else
ENABLED_EXTENSIONS="${ENABLED_EXTENSIONS%]}, '[email protected]']"
fi
gsettings set org.gnome.shell enabled-extensions "${ENABLED_EXTENSIONS}"
fi
echo "GNOME Shell will enable Jarvis after the next login (the current Shell session has not rescanned extensions)."
else
echo "GNOME Shell has not rescanned extensions; log out and back in, then run: gnome-extensions enable [email protected]"
fi
fi
echo "Installed JARVIS-QVAC to ${APP_DIR}"
echo "Run: ${APP_DIR}/packaging/first-run.sh"