mirror of
https://github.com/optim-enterprises-bv/secureblue.git
synced 2025-11-07 13:58:03 +00:00
fix: switch profile.d script to more robust technique
- Now uses `sh`-style single-bracket `[]` POSIX syntax instead of the truly old-school `test` syntax. Both are equivalent and equally portable. In fact, `man test` explains everything that `[]` can do. - We now symlink the user's autostart file to the uBlue image's own file, and we do it in a backwards-compatible way which replaces the user's current legacy script file (if any). The previous system dumped a permanent file in the user's home-directory which never updated again after that, which meant that OS updates could never fix or improve the autostart scripts in the future. That's now possible, thanks to being a symlink. - If the user uninstalls uBlue, or switches to a flavor without `yafti`, then the leftover "autostart" symlink will simply be a minor nuisance that only causes some soft, invisible syslog warnings about the "broken symlink", which is an improvement over the previous system which kept a full `.desktop` file that attempted to run a binary and failed to find it.
This commit is contained in:
@@ -1,6 +1,15 @@
|
|||||||
if test "$(id -u)" -gt "0" && test -d "$HOME"; then
|
# Only process users with home directories, but skip the "root" user.
|
||||||
if test ! -e "$HOME"/.config/autostart/ublue-firstboot.desktop; then
|
if [ "$(id -u)" != "0" ] && [ -d "$HOME" ]; then
|
||||||
|
# Ensure target file exists and is a symlink (not a regular file or dir).
|
||||||
|
if [ ! -L "$HOME"/.config/autostart/ublue-firstboot.desktop ]; then
|
||||||
|
# Remove any leftovers or incorrect (non-link) files with the same name.
|
||||||
|
rm -rf "$HOME"/.config/autostart/ublue-firstboot.desktop
|
||||||
|
|
||||||
|
# Create symlink to uBlue's autostart runner.
|
||||||
|
# Note that "broken autostart symlinks" are harmless if they remain
|
||||||
|
# after distro switching, and just cause a minor syslog warning. The
|
||||||
|
# user can manually delete this file if they migrate away from uBlue.
|
||||||
mkdir -p "$HOME"/.config/autostart
|
mkdir -p "$HOME"/.config/autostart
|
||||||
cp -f /usr/etc/skel.d/.config/autostart/ublue-firstboot.desktop "$HOME"/.config/autostart
|
ln -s "/usr/share/ublue-os/firstboot/launcher/autostart.desktop" "$HOME"/.config/autostart/ublue-firstboot.desktop
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user