This commit is contained in:
@@ -93,6 +93,10 @@ setup afterward:
|
|||||||
~~~bash
|
~~~bash
|
||||||
bash ~/.local/share/jarvis-qvac/packaging/first-run.sh
|
bash ~/.local/share/jarvis-qvac/packaging/first-run.sh
|
||||||
gnome-extensions enable jarvis@qvac.local
|
gnome-extensions enable jarvis@qvac.local
|
||||||
|
|
||||||
|
If GNOME says the extension does not exist immediately after installation, log
|
||||||
|
out and back in once. GNOME Shell only refreshes its user extension catalogue
|
||||||
|
at session startup; the installer persists the enabled state for that login.
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
The rolling installer first downloads a self-contained architecture bundle
|
The rolling installer first downloads a self-contained architecture bundle
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ rm -f "${OUT_DIR}/jarvis-qvac-extension.zip"
|
|||||||
if command -v glib-compile-schemas >/dev/null; then
|
if command -v glib-compile-schemas >/dev/null; then
|
||||||
glib-compile-schemas "${ROOT_DIR}/apps/gnome-extension/[email protected]/schemas" >/dev/null
|
glib-compile-schemas "${ROOT_DIR}/apps/gnome-extension/[email protected]/schemas" >/dev/null
|
||||||
fi
|
fi
|
||||||
( cd "${ROOT_DIR}/apps/gnome-extension" && zip -q -r "${OUT_DIR}/jarvis-qvac-extension.zip" "[email protected]" -x '*/__pycache__/*' -x '*.pyc' )
|
# GNOME's installer expects metadata.json at the archive root. The UUID is
|
||||||
|
# taken from metadata.json and becomes the on-disk extension directory.
|
||||||
|
( cd "${ROOT_DIR}/apps/gnome-extension/[email protected]" && zip -q -r "${OUT_DIR}/jarvis-qvac-extension.zip" . -x '*/__pycache__/*' -x '*.pyc' )
|
||||||
test -s "${OUT_DIR}/jarvis-qvac-extension.zip"
|
test -s "${OUT_DIR}/jarvis-qvac-extension.zip"
|
||||||
echo "${OUT_DIR}/jarvis-qvac-extension.zip"
|
echo "${OUT_DIR}/jarvis-qvac-extension.zip"
|
||||||
|
|||||||
+26
-5
@@ -23,15 +23,18 @@ if [[ -z "${BARE_BIN}" || ! -x "${BARE_BIN}" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
chmod 755 "${BARE_BIN}"
|
chmod 755 "${BARE_BIN}"
|
||||||
rm -rf "${EXT_DIR}"
|
|
||||||
mkdir -p "${EXT_DIR}"
|
|
||||||
EXT_TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/jarvis-extension.XXXXXX")"
|
EXT_TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/jarvis-extension.XXXXXX")"
|
||||||
EXT_ZIP="${EXT_TMP_DIR}/jarvis-extension.zip"
|
EXT_ZIP="${EXT_TMP_DIR}/jarvis-extension.zip"
|
||||||
cleanup_ext() { rm -rf "${EXT_TMP_DIR}"; }
|
cleanup_ext() { rm -rf "${EXT_TMP_DIR}"; }
|
||||||
trap cleanup_ext EXIT
|
trap cleanup_ext EXIT
|
||||||
( cd "${ROOT_DIR}/apps/gnome-extension" && zip -q -r "${EXT_ZIP}" "[email protected]" )
|
( cd "${ROOT_DIR}/apps/gnome-extension/[email protected]" && zip -q -r "${EXT_ZIP}" . )
|
||||||
if command -v gnome-extensions >/dev/null && gnome-extensions install --force "${EXT_ZIP}" >/dev/null 2>&1; then
|
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
|
else
|
||||||
cp -a "${ROOT_DIR}/apps/gnome-extension/[email protected]/." "${EXT_DIR}/"
|
cp -a "${ROOT_DIR}/apps/gnome-extension/[email protected]/." "${EXT_DIR}/"
|
||||||
fi
|
fi
|
||||||
@@ -46,6 +49,24 @@ if [[ "${1:-}" == "--enable" ]]; then
|
|||||||
systemctl --user daemon-reload
|
systemctl --user daemon-reload
|
||||||
systemctl --user enable jarvisd.service
|
systemctl --user enable jarvisd.service
|
||||||
systemctl --user restart 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
|
fi
|
||||||
echo "Installed JARVIS-QVAC to ${APP_DIR}"
|
echo "Installed JARVIS-QVAC to ${APP_DIR}"
|
||||||
echo "Run: ${APP_DIR}/packaging/first-run.sh"
|
echo "Run: ${APP_DIR}/packaging/first-run.sh"
|
||||||
|
|||||||
Reference in New Issue
Block a user