Handle addons in install-new-flatpaks

This commit is contained in:
Philip Grant
2026-07-28 09:48:10 +01:00
parent 81c5a33240
commit 439c5c9642
2 changed files with 12 additions and 5 deletions

View File

@@ -5,15 +5,19 @@
set -eu
FACTORY_DIR="/usr/share/factory/var/lib/flatpak/app"
FACTORY_RUNTIME_DIR="/usr/share/factory/var/lib/flatpak/runtime"
REPO_CONFIG="/usr/share/factory/var/lib/flatpak/repo/config"
DEFAULT_REMOTE="flathub"
INSTALLED_APPS=$(tr '\n' ' ' <<< $(flatpak list --app --columns=application))
INSTALLED_APPS=$(tr '\n' ' ' <<< $(flatpak list --columns=application))
EVER_PREINSTALLED_APPS_FILE="/var/lib/kde-linux/ever-preinstalled-flatpak-apps"
EVER_PREINSTALLED_APPS=$(tr '\n' ' ' < $EVER_PREINSTALLED_APPS_FILE)
echo "Looking in $FACTORY_DIR for new pre-installed apps that need installing…"
echo "Looking in $FACTORY_DIR and $FACTORY_RUNTIME_DIR for new pre-installed apps and addons that need installing…"
for APP in "$FACTORY_DIR"/*; do
APPS=$(ls $FACTORY_DIR)
ADDONS=$(find $FACTORY_RUNTIME_DIR -maxdepth 1 -type d -name "*.Addon.*" -printf "%f\n")
for APP in $APPS $ADDONS; do
# trim trailing slash
APP=$(basename "$APP")
@@ -35,7 +39,7 @@ for APP in "$FACTORY_DIR"/*; do
# See if we have a special repo to install it from
NON_RDNS_NAME="${APP#*.*.}"
SPECIAL_APP_REMOTE_NAME=$(rg "$NON_RDNS_NAME" "$REPO_CONFIG" | head -n 1 | cut -d '"' -f 2 || true)
SPECIAL_APP_REMOTE_NAME=$(rg "\[remote.*${NON_RDNS_NAME}" "$REPO_CONFIG" | head -n 1 | cut -d '"' -f 2 || true)
if [[ -n "$SPECIAL_APP_REMOTE_NAME" ]]; then
echo "$APP needs to be installed from a special repo: $SPECIAL_APP_REMOTE_NAME"
REMOTE="$SPECIAL_APP_REMOTE_NAME"

View File

@@ -25,7 +25,10 @@ org.mozilla.firefox
EOF
else
# This is a brand new system. The set of apps that have ever been preinstalled on the system
# is exactly those in /usr/share/factory/var/lib/flatpak/app
# is exactly those in /usr/share/factory/var/lib/flatpak/app. We also need to identify
# addons in /usr/share/factory/var/lib/flatpak/runtime, which we do based on naming convention.
echo "New KDE Linux install: using preinstalled app list from factory directory"
ls /usr/share/factory/var/lib/flatpak/app > $EVER_PREINSTALLED_APPS_FILE
find /usr/share/factory/var/lib/flatpak/runtime \
-maxdepth 1 -type d -name "*.Addon.*" -printf "%f\n" >> $EVER_PREINSTALLED_APPS_FILE
fi