diff --git a/README.md b/README.md index 33ee849..4af4d5d 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,7 @@ # Update Update script written in bash for Arch. Keeps all your pacman and aur packages as well as your flatpaks up to date with one simple script. It also backups a list of all your pacman/aur pkg's and flatpaks. As well as your fstab and the makepkg.conf to the location that you specify in the config. -## Dependencies -Needed dependencies - -```bash - pacman -S zip -``` ## Installation ```bash @@ -25,12 +19,12 @@ make install Usage: update [OPTION] options: -no flag same as -a --f updates using flatpak update only --y updates using an aur-helper only --a updates using flatpak update and an aur-helper --g shutdowns the computer afterwards (needs to be the last or only option to work properly) --r reboots the computer afterwards (needs to be the last or only option to work properly) +no flag same as -a +-f updates using flatpak update only +-p updates using a pacman-wrapper only +-a updates using flatpak update and a pacman-wrapper +-g shutdowns the computer afterwards (needs to be the last or only option to work properly) +-r reboots the computer afterwards (needs to be the last or only option to work properly) ``` ## Roadmap diff --git a/makefile b/makefile index c2ffd5c..d456093 100644 --- a/makefile +++ b/makefile @@ -1,4 +1,4 @@ -VER = "v1.2" +VER = "v1.3" install: @echo "==> Installing update $(VER)..." diff --git a/update b/update index 3519d0a..9f9043d 100644 --- a/update +++ b/update @@ -1,12 +1,11 @@ #!/bin/bash -# updates via an aur-helper and flatpak with flags -# version 1.2 +# updates using a pacman-wrapper and flatpak-update with flags +# version 1.3 IGreen="\033[0;92m" # Green NC="\033[0m" # Text Reset - -DIR="$(pwd)" +TMP="/tmp/backup" source "${HOME}"/.config/update.conf @@ -17,42 +16,41 @@ Help() { echo "options:" echo "no flag same as -a" echo "-f updates using flatpak update only" - echo "-y updates using an aur-helper only" - echo "-a updates using flatpak update and an aur-helper" + echo "-p updates using a pacman-wrapper only" + echo "-a updates using flatpak update and a pacman-wrapper" echo "-g shutdowns the computer afterwards (needs to be the last or only option to work properly)" echo "-r reboots the computer afterwards (needs to be the last or only option to work properly)" } -# creates package lists, moves them into a zip, adds some other files to the zip and backups the pacman database in the form of a tar -# it then rsyncs the zip and the tar to the backup location +# creates package lists, moves them into a tar, adds some other files and adds the pacman database +# it then rsyncs the tar to the backup location before_backup() { - pacman -Q > pacman-pre.txt - flatpak list > flatpak-pre.txt - zip --quiet --move before-backup.zip.new pacman-pre.txt flatpak-pre.txt - zip --quiet --grow before-backup.zip.new /etc/fstab /etc/makepkg.conf - tar -cJf pacman-database.tar.xz.new /var/lib/pacman/local &> /dev/null - rsync --remove-source-files before-backup.zip.new pacman-database.tar.xz.new "${backup_location}" - rename before-backup.zip.new before-backup.zip "${backup_location}"/before-backup.zip.new - rename pacman-database.tar.xz.new pacman-database.tar.xz "${backup_location}"/pacman-database.tar.xz.new + [[ ! -d /tmp/backup ]] && mkdir /tmp/backup + pacman -Q > "${TMP}"/pacman-pre.txt + flatpak list > "${TMP}"/flatpak-pre.txt + tar -cJf "${TMP}"/before-backup.tar.xz.new "${TMP}"/pacman-pre.txt "${TMP}"/flatpak-pre.txt /var/lib/pacman/local &> /dev/null + rsync "${TMP}"/before-backup.tar.xz.new "${backup_location}" + rename before-backup.tar.xz.new before-backup.tar.xz "${backup_location}"/before-backup.tar.xz.new } -# moves the package lists into a zip, it then rsyncs the zip to the backup location +# moves the package lists into a tar, it then rsyncs the tar to the backup location after_backup() { - zip --quiet --move after-backup.zip.new pacman-after.txt flatpak-after.txt - rsync --remove-source-files after-backup.zip.new "${backup_location}" - rename after-backup.zip.new after-backup.zip "${backup_location}"/after-backup.zip.new + tar -cJf "${TMP}"/after-backup.tar.xz.new "${TMP}"/pacman-after.txt "${TMP}"/flatpak-after.txt &> /dev/null + rsync "${TMP}"/after-backup.tar.xz.new "${backup_location}" + rename after-backup.tar.xz.new after-backup.tar.xz "${backup_location}"/after-backup.tar.xz.new + rm -r /tmp/backup } -# updates using aur-helper -update_with_aur_helper() { - "${aur_helper}" - pacman -Q > pacman-after.txt +# updates using a pacman-wrapper +update_with_pacman_wrapper() { + "${pacman_wrapper}" + pacman -Q > "${TMP}"/pacman-after.txt } -# updates using flatpak update +# updates using flatpak-update update_with_flatpak() { flatpak update -u --noninteractive - flatpak list > flatpak-after.txt + flatpak list > "${TMP}"/flatpak-after.txt } [[ $1 = --help ]] && Help && exit 0; @@ -62,28 +60,27 @@ while [ -f /var/lib/pacman/db.lck ]; do { } done -[[ ! -d /tmp/backup ]] && mkdir /tmp/backup; -cd /tmp/backup && before_backup && echo -e "${IGreen} pre-backup complete ${NC}" +before_backup && echo -e "${IGreen} pre-backup complete ${NC}" -[[ -z $1 ]] && update_with_aur_helper && update_with_flatpak; -while getopts 'fyagr' OPTIONS; do +[[ -z $1 ]] && update_with_pacman_wrapper && update_with_flatpak; +while getopts 'fpagr' OPTIONS; do case "$OPTIONS" in f) update_with_flatpak ;; - y) - update_with_aur_helper ;; + p) + update_with_pacman_wrapper ;; a) - update_with_aur_helper; update_with_flatpak ;; + update_with_pacman_wrapper; update_with_flatpak ;; g) - [[ $1 = -g ]] && update_with_aur_helper && update_with_flatpak; - after_backup && cd "${DIR}" || return; echo -e "${IGreen} after-backup complete ${NC}" && sleep 3s && shutdown now ;; + [[ $1 = -g ]] && update_with_pacman_wrapper && update_with_flatpak; + after_backup && echo -e "${IGreen} after-backup complete ${NC}" && sleep 3s && shutdown now ;; r) - [[ $1 = -r ]] && update_with_aur_helper && update_with_flatpak; - after_backup && cd "${DIR}" || return; echo -e "${IGreen} after-backup complete ${NC}" && sleep 3s && reboot ;; + [[ $1 = -r ]] && update_with_pacman_wrapper && update_with_flatpak; + after_backup && echo -e "${IGreen} after-backup complete ${NC}" && sleep 3s && reboot ;; ?) Help exit 1;; esac done -after_backup && cd "${DIR}" || return; rm -r /tmp/backup; echo -e "${IGreen} after-backup complete ${NC}" +after_backup && echo -e "${IGreen} after-backup complete ${NC}" diff --git a/update.conf b/update.conf index 53e4090..22a9b63 100644 --- a/update.conf +++ b/update.conf @@ -1,5 +1,5 @@ # Backup to this folder backup_location=~/ -# use this aur-helper -aur_helper=paru +# use this pacman-wrapper +pacman_wrapper=paru