i think i fixed a bug... #5
18
README.md
18
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
|
||||
|
||||
|
2
makefile
2
makefile
@ -1,4 +1,4 @@
|
||||
VER = "v1.2"
|
||||
VER = "v1.3"
|
||||
|
||||
install:
|
||||
@echo "==> Installing update $(VER)..."
|
||||
|
73
update
73
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}"
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Backup to this folder
|
||||
backup_location=~/
|
||||
|
||||
# use this aur-helper
|
||||
aur_helper=paru
|
||||
# use this pacman-wrapper
|
||||
pacman_wrapper=paru
|
||||
|
Loading…
Reference in New Issue
Block a user