diff --git a/upsnapz.sh b/upsnapz.sh index d96fafe..0396755 100755 --- a/upsnapz.sh +++ b/upsnapz.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Time-stamp: <2025-03-09 08:03:21 nomad> +# Time-stamp: <2025-03-09 08:05:00 nomad> # Michel Le Cocq # @@ -30,34 +30,9 @@ # en gros le resultat de : apt list --upgradable # - regarder si un nouveau kernel existe et si oui faire ce qu'il y a a faire # - verifier que les noms des zroot/ROOT/vol sont conformes au format attendu -# - verfier que 'gh auth status' fonctionne avant de l'utiliser (auth) -# -# - souci dans clone promote oui non !? -# je fais dans la fonction askpromote -# sudo zfs clone $bootfs@$snapname $parents/$sugsname -# sudo zfs promote $parents/$sugsname -# je fais ca pour que : promote clone dataset no longer depend on origin snapshot -# -# je pense finalement que je fais la meme chose que ZBM a veririfer -# -# - integrer apt dist-upgrade -# -# root@nsob:~# apt dist-upgrade -# Upgrading: -# libnvpair3linux libuutil3linux zfs-dkms zfs-initramfs zfs-zed zfsutils-linux -# -# Installing dependencies: -# libzfs6linux libzpool6linux -# -# REMOVING: -# libzfs4linux libzpool5linux -# -# Summary: -# Upgrading: 6, Installing: 2, Removing: 2, Not Upgrading: 0 -# Download size: 4891 kB -# Space needed: 538 kB / 27.3 GB available -# -# proposition pour checker, il faut relancer : apt list --upgradable : et regarder +# - verfier que 'gh auth status' fonctionne avant de l'utiliser (auth) +# - ameliorer l'integration de : apt full-upgrade +# la c'est un peu brouillon # # +------------------------------------------------------------------------------------------------+ @@ -310,39 +285,56 @@ function snapchange function askupgrade() { - # run apt update # if there were upgrade ask for upgrade or not # ask for making a snapshot # run apt upgrade # else # ask for making a snapshot - printf '%s\n' 'apt update' - sudo apt update - if [ $(apt list --upgradable 2>/dev/null | wc -l) -gt 1 ] - then - printf '\n%s\n' 'apt list --upgradable' - apt list --upgradable - - printf '\nUpgrade or not : [Y-n]' - read answer + printf '\n%s\n' 'apt list --upgradable' + apt list --upgradable - if [ -z $answer ] - then - echo y - answer='y' - fi + printf '\nUpgrade or not : [Y-n]' + read answer + + if [ -z $answer ] + then + echo y + answer='y' + fi - if [[ "$answer" == "y" ]] + if [[ "$answer" == "y" ]] + then + if [ $1 -eq 1 ] + then + echo '\nAbove packages need full upgrade.\nRun full-upgrade :' + sudo apt -y full-upgrade + elif [ $1 -eq 0 ] then printf 'before upgrade : ' asksnap - printf '%s\n' 'apt -y upgrade' - sudo apt -y upgrade - else - echo no + printf '%s\n' 'apt -y upgrade' + sudo apt -y upgrade fi else + echo no + fi +} + +function checkupgrade() +{ + # run apt update + + printf '%s\n' 'apt update' + sudo apt update + if [ $(apt list --upgradable 2>/dev/null | wc -l) -gt 1 ] + then + askupgrade 0 + sudo apt update 2>/dev/null + if [ $(apt list --upgradable 2>/dev/null | wc -l) -gt 1 ] + then + askupgrade 1 + fi echo asksnap fi @@ -378,7 +370,7 @@ while getopts 'hbs' OPTION; do esac done -askupgrade +checkupgrade askautoclean snapchange echo