I want to make updates to be executed inside a tmux-session to make the update process resilient against interrupted ssh-connections.
zypper in lsb-release install -bD --owner=root --group=root --mode=0750 -T <(cat << 'EOF' #!/bin/bash # debug #set -x declare _updatecommand declare _flatpak_updatecommand declare _gitup_user_updatecommand declare _osvendor declare _highlevelpackagemanager declare _os_updatecommand _flatpak_updatecommand="flatpak --system update -y" _gitup_user_updatecommand="sudo -u def python3.8 /home/def/.local/bin/gitup" if [ ! command -v lsb-release >/dev/null 2>&1 ] && [ ! command -v lsb_release >/dev/null 2>&1 ] then echo >&2 "ERROR: lsb-release required but it's not installed. Aborting." exit 1; fi _osvendor="$( lsb-release -is )" case $_osvendor in openSUSE) _highlevelpackagemanager="$( command -v zypper )" _os_updatecommand="${_highlevelpackagemanager} ref && ${_highlevelpackagemanager} dup" ;; Debian) _highlevelpackagemanager="$( command -v apt )" _os_updatecommand="${_highlevelpackagemanager} update && ${_highlevelpackagemanager} -y upgrade && ${_highlevelpackagemanager} -y full-upgrade" ;; *) echo >&2 "ERROR: Your operating system (${_osvendor}) is not supported. Aborting." exit 1 ;; esac _updatecommand="${_flatpak_updatecommand} && ${_gitup_user_updatecommand} && ${_os_updatecommand}" tmux new -s sysupdate -d tmux send-keys -t sysupdate "${_updatecommand}" C-m tmux attach -t sysupdate EOF ) /root/scripts/sysupdate/sysupdate ln -s /root/scripts/sysupdate/sysupdate /root/bin/AAA # as user su - <USERNAME> mkdir -pv ~/repos/extern/ git clone https://github.com/earwig/git-repo-updater.git ~/repos/extern/git-repo-updater cd ~/repos/extern/git-repo-updater python ./setup.py install --useradd ~/.local/bin to your PATH
vim ~/.bashrc
# PATH export PATH="${PATH}:~/bin:~/.local/bin"
source ~/.bashrc gitup --add ~/repos/
# as root install -bD --owner=root --group=root --mode=0750 -T <(cat << 'EOF' [Unit] Description=Update Flatpak After=network-online.target Wants=network-online.target [Service] Type=oneshot ExecStart=/usr/bin/flatpak update --noninteractive --assumeyes [Install] WantedBy=multi-user.target EOF) /etc/systemd/user/flatpak-update.service install -bD --owner=root --group=root --mode=0750 -T <(cat << 'EOF' [Unit] Description=Update Flatpak [Timer] OnBootSec=2m OnActiveSec=2m OnUnitInactiveSec=24h OnUnitActiveSec=24h AccuracySec=1h RandomizedDelaySec=10m [Install] WantedBy=timers.target EOF) /etc/systemd/user/flatpak-update.timer
~~DISCUSSION~~