Feat: Add optional extended tooltip for updates module (#866)
* added optional extended tooltip for updates module * Apply suggestions from code review Linter fixes * Update scripts/checkUpdates.sh Co-authored-by: Jas Singh <jaskiratpal.singh@outlook.com> * Update scripts/checkUpdates.sh Co-authored-by: Jas Singh <jaskiratpal.singh@outlook.com> --------- Co-authored-by: Mara <mara.dawn69@gmail.com> Co-authored-by: Jas Singh <jaskiratpal.singh@outlook.com>
This commit is contained in:
@@ -1,49 +1,94 @@
|
||||
#!/bin/bash
|
||||
|
||||
check_arch_updates() {
|
||||
official_updates=0
|
||||
aur_updates=0
|
||||
if command -v paru &> /dev/null; then
|
||||
aur_helper="paru"
|
||||
else
|
||||
aur_helper="yay"
|
||||
fi
|
||||
has_param() {
|
||||
local term="$1"
|
||||
shift
|
||||
for arg; do
|
||||
if [[ $arg == "$term" ]]; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
if [ "$1" = "-y" ]; then
|
||||
aur_updates=$($aur_helper -Qum 2>/dev/null | wc -l)
|
||||
elif [ "$1" = "-p" ]; then
|
||||
official_updates=$(checkupdates 2>/dev/null | wc -l)
|
||||
wait_for_process_to_finish() {
|
||||
local process_name="$1"
|
||||
while pgrep -a "$process_name" >/dev/null; do
|
||||
sleep 0.1
|
||||
done
|
||||
}
|
||||
|
||||
check_arch_updates() {
|
||||
if command -v paru &> /dev/null; then
|
||||
aur_helper="paru"
|
||||
else
|
||||
official_updates=$(checkupdates 2>/dev/null | wc -l)
|
||||
aur_updates=$($aur_helper -Qum 2>/dev/null | wc -l)
|
||||
aur_helper="yay"
|
||||
fi
|
||||
|
||||
if has_param "-tooltip" "$@"; then
|
||||
command=" | head -n 50"
|
||||
official_updates=""
|
||||
aur_updates=""
|
||||
wait_for_process_to_finish "checkupdates"
|
||||
else
|
||||
command="2>/dev/null | wc -l"
|
||||
official_updates=0
|
||||
aur_updates=0
|
||||
fi
|
||||
|
||||
aur_command="$aur_helper -Qum $command"
|
||||
official_command="checkupdates $command"
|
||||
|
||||
if has_param "-y" "$@"; then
|
||||
aur_updates=$(eval "$aur_command")
|
||||
elif has_param "-p" "$@"; then
|
||||
official_updates=$(eval "$official_command")
|
||||
else
|
||||
aur_updates=$(eval "$aur_command")
|
||||
official_updates=$(eval "$official_command")
|
||||
fi
|
||||
|
||||
if has_param "-tooltip" "$@"; then
|
||||
if [ "$official_updates" ];then
|
||||
echo "pacman:"
|
||||
echo "$official_updates"
|
||||
fi
|
||||
if [ "$official_updates" ] && [ "$aur_updates" ];then
|
||||
echo ""
|
||||
fi
|
||||
if [ "$aur_updates" ];then
|
||||
echo "AUR:"
|
||||
echo "$aur_updates"
|
||||
fi
|
||||
else
|
||||
total_updates=$((official_updates + aur_updates))
|
||||
echo $total_updates
|
||||
fi
|
||||
|
||||
total_updates=$((official_updates + aur_updates))
|
||||
|
||||
echo $total_updates
|
||||
}
|
||||
|
||||
check_ubuntu_updates() {
|
||||
result=$(apt-get -s -o Debug::NoLocking=true upgrade | grep -c ^Inst)
|
||||
echo "$result"
|
||||
result=$(apt-get -s -o Debug::NoLocking=true upgrade | grep -c ^Inst)
|
||||
echo "$result"
|
||||
}
|
||||
|
||||
check_fedora_updates() {
|
||||
result=$(dnf check-update -q | grep -v '^Loaded plugins' | grep -v '^No match for' | wc -l)
|
||||
echo "$result"
|
||||
result=$(dnf check-update -q | grep -v '^Loaded plugins' | grep -v '^No match for' | wc -l)
|
||||
echo "$result"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
-arch)
|
||||
check_arch_updates "$2"
|
||||
;;
|
||||
-ubuntu)
|
||||
check_ubuntu_updates
|
||||
;;
|
||||
-fedora)
|
||||
check_fedora_updates
|
||||
;;
|
||||
*)
|
||||
echo "0"
|
||||
;;
|
||||
-arch)
|
||||
check_arch_updates "$2" "$3"
|
||||
;;
|
||||
-ubuntu)
|
||||
check_ubuntu_updates
|
||||
;;
|
||||
-fedora)
|
||||
check_fedora_updates
|
||||
;;
|
||||
*)
|
||||
echo "0"
|
||||
;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user