diff options
author | Adam Spragg <adam@spra.gg> | 2022-03-13 17:36:46 +0000 |
---|---|---|
committer | Adam Spragg <adam@spra.gg> | 2022-03-13 17:36:46 +0000 |
commit | ab3461e792a3b9a525a895bb0b3a70e55955efb6 (patch) | |
tree | d8abe25eab49ade25880946a40451f42249e5e97 /adu-upgrade |
First (mostly) working version apt-desktop-upgrades
Diffstat (limited to 'adu-upgrade')
-rwxr-xr-x | adu-upgrade | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/adu-upgrade b/adu-upgrade new file mode 100755 index 0000000..6566dee --- /dev/null +++ b/adu-upgrade @@ -0,0 +1,45 @@ +#! /bin/sh + +# Copyright © 2022 Adam Spragg +# SPDX-License-Identifier: LGPL-3.0-or-later +# +# This file is part of apt-desktop-upgrades +# +# apt-desktop-upgrades is free software: you can redistribute it and/or modify +# under the terms of the GNU Lesser General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your option) +# any later version. +# +# apt-desktop-upgrades is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License +# for more details. +# +# You should have received a copy of the GNU Lesser General Public License along +# with apt-desktop-upgrades. If not, see <https://www.gnu.org/licenses/>. + +set -e + +PREFIX=/usr/local +SBINDIR="${PREFIX}/sbin" + +UPDATE_SYMLINK="/system-update" +UPDATE_TARGET="${SBINDIR}/adu-upgrade" + +if [ x"$(realpath -- "${UPDATE_SYMLINK}")" != x"${UPDATE_TARGET}" ]; then + exit 0 +fi + +# man:systemd.offline-updates(7): +# "Make sure to remove the /system-update symlink as early as possible in +# the update script to avoid reboot loops in case the update fails." +rm -f -- "${UPDATE_SYMLINK}" + +# Do the update +apt-get upgrade -y --no-download --ignore-missing + +# man:systemd.offline-updates(7): +# "The update service should now do its job. [...] After completion +# (regardless whether the update succeeded or failed) the machine must be +# rebooted, for example by calling `systemctl reboot`." +systemctl reboot |