particle-os-modules/modules/yafti/yafti.sh
fiftydinar 2880d6254d
fix(yafti): Revert to pip installation method
`rpm-ostree` method is not capable of installing yafti's older version of `python3-pydantic` instead of being confused between both system's & yafti's version of that package.

I tried to increase `ublue-os staging` repo priority, where yafti resides, but that doesn't work.

Pip method while not flawless with its hardlinking errors when same system package tries to get installed, it at least finishes yafti install successfully.
2024-08-01 19:07:13 +02:00

48 lines
1.6 KiB
Bash

#!/usr/bin/env bash
# Tell build process to exit if there are any errors.
set -euo pipefail
MODULE_DIRECTORY="${MODULE_DIRECTORY:-"/tmp/modules"}"
FIRSTBOOT_DATA="/usr/share/ublue-os/firstboot"
mkdir -p "$FIRSTBOOT_DATA/launcher/"
# doesn't overwrite user's yafti.yml (ignores error)
cp -n "$MODULE_DIRECTORY/yafti/yafti.yml" "$FIRSTBOOT_DATA/yafti.yml" || true
cp -r "$MODULE_DIRECTORY/yafti/launcher/" "$FIRSTBOOT_DATA/launcher/"
FIRSTBOOT_SCRIPT="${FIRSTBOOT_DATA}/launcher/login-profile.sh"
PROFILED_DIR="/usr/etc/profile.d"
FIRSTBOOT_LINK="${PROFILED_DIR}/ublue-firstboot.sh"
echo "Installing python3-pip and libadwaita"
rpm-ostree install python3-pip libadwaita
echo "Installing and enabling yafti"
pip install --prefix=/usr yafti==0.8.0
# If the profile.d directory doesn't exist, create it
if [ ! -d "${PROFILED_DIR}" ]; then
mkdir -p "${PROFILED_DIR}"
fi
# Create symlink to our profile script, which creates the per-user "autorun yafti" links.
if [ -f "${FIRSTBOOT_SCRIPT}" ]; then
ln -sf "${FIRSTBOOT_SCRIPT}" "${FIRSTBOOT_LINK}"
fi
YAFTI_FILE="${FIRSTBOOT_DATA}/yafti.yml"
get_yaml_array FLATPAKS '.custom-flatpaks[]' "$1"
if [[ ${#FLATPAKS[@]} -gt 0 ]]; then
echo "Adding Flatpaks to yafti.yml"
yq -i '.screens.applications.values.groups.Custom.description = "Flatpaks suggested by the image maintainer."' "${YAFTI_FILE}"
yq -i '.screens.applications.values.groups.Custom.default = true' "${YAFTI_FILE}"
for pkg in "${FLATPAKS[@]}"; do
echo "Adding to yafti: ${pkg}"
yq -i ".screens.applications.values.groups.Custom.packages += [$pkg]" "${YAFTI_FILE}"
done
fi