9b1ef262bcc8d47a6d20b4efc673557560df6647

Author
deimosian <deimosian@gmail.com>
Committer
GitHub <noreply@github.com>
Date

Message

feat(archlinux): unify `upgrade` function (#11597)

Co-authored-by: Carlo Sala <carlosalag@protonmail.com>

Diff

 1diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh
 2index 4f136477913150e6f9a6f5aba19fc67701f73080..e3b1b1261f4a9722d656d30c35891730a552d1b4 100644
 3--- a/plugins/archlinux/archlinux.plugin.zsh
 4+++ b/plugins/archlinux/archlinux.plugin.zsh
 5@@ -23,7 +23,6 @@ alias pacfiles='pacman -F'
 6 alias pacls='pacman -Ql'
 7 alias pacown='pacman -Qo'
 8 alias pacupd="sudo pacman -Sy"
 9-alias upgrade='sudo pacman -Syu'
10 
11 function paclist() {
12   # Based on https://bbs.archlinux.org/viewtopic.php?id=93683
13@@ -109,7 +108,6 @@ if (( $+commands[aura] )); then
14   alias auupd="sudo aura -Sy"
15   alias auupg='sudo sh -c "aura -Syu              && aura -Au"'
16   alias ausu='sudo sh -c "aura -Syu --no-confirm && aura -Au --no-confirm"'
17-  alias upgrade='sudo aura -Syu'
18 
19   # extra bonus specially for aura
20   alias auown="aura -Qqo"
21@@ -136,7 +134,6 @@ if (( $+commands[pacaur] )); then
22   alias painsd='pacaur -S --asdeps'
23   alias pamir='pacaur -Syy'
24   alias paupd="pacaur -Sy"
25-  alias upgrade='pacaur -Syu'
26 fi
27 
28 if (( $+commands[trizen] )); then
29@@ -158,7 +155,6 @@ if (( $+commands[trizen] )); then
30   alias trinsd='trizen -S --asdeps'
31   alias trmir='trizen -Syy'
32   alias trupd="trizen -Sy"
33-  alias upgrade='trizen -Syu'
34 fi
35 
36 if (( $+commands[yay] )); then
37@@ -180,5 +176,30 @@ if (( $+commands[yay] )); then
38   alias yainsd='yay -S --asdeps'
39   alias yamir='yay -Syy'
40   alias yaupd="yay -Sy"
41-  alias upgrade='yay -Syu'
42 fi
43+
44+# Check Arch Linux PGP Keyring before System Upgrade to prevent failure.
45+function upgrade() {
46+  echo "[oh-my-zsh] Checking Arch Linux PGP Keyring"
47+  local installedver="$(sudo pacman -Qi archlinux-keyring | grep -Po '(?<=Version         : ).*')"
48+  local currentver="$(sudo pacman -Si archlinux-keyring | grep -Po '(?<=Version         : ).*')"
49+  if [ $installedver != $currentver ]; then
50+    echo "[oh-my-zsh] Arch Linux PGP Keyring is out of date."
51+    echo "[oh-my-zsh] Updating before full system upgrade."
52+    sudo pacman -Syu --needed --noconfirm archlinux-keyring
53+  else
54+    echo "[oh-my-zsh] Arch Linux PGP Keyring is up to date."
55+  fi
56+  echo "[oh-mh-zsh] Proceeding with full system upgrade."
57+  if (( $+commands[yay] )); then
58+    yay -Syu
59+  elif (( $+commands[trizen] )); then
60+    trizen -Syu
61+  elif (( $+commands[pacaur] )); then
62+    pacaur -Syu
63+  elif (( $+commands[aura] )); then
64+    sudo aura -Syu
65+  else
66+    sudo pacman -Syu
67+  fi
68+}