Fix/improve package management for fedora and atomic spins
This commit is contained in:
parent
7396945594
commit
b91d942a71
|
@ -0,0 +1,51 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
COUNTFILE=${HOME}/.local/state/$(hostname)-upgradeable
|
||||||
|
COUNT=0
|
||||||
|
REBOOT=""
|
||||||
|
|
||||||
|
function count() {
|
||||||
|
RESULTS="`rpm-ostree upgrade --check 2> /dev/null | grep Diff: | sed 's/.*\([0-9][0-9]*\).*/\1/'`"
|
||||||
|
COUNT=0
|
||||||
|
for i in $RESULTS; do
|
||||||
|
i=`echo $i | sed 's/;//'`
|
||||||
|
let COUNT=$COUNT+$i
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
REBOOT="$(rpm-ostree status | grep Diff | sed -r 's/.*Diff: //')"
|
||||||
|
|
||||||
|
if [ -e $COUNTFILE ] && [[ "$(date +%s) - $(stat -c %Y -- $COUNTFILE)" -gt 360 ]]; then
|
||||||
|
echo $COUNTFILE is older than 1h. Forcing refresh.
|
||||||
|
rm $COUNTFILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" == 'bar' ]; then
|
||||||
|
if [ ! -e $COUNTFILE ]; then
|
||||||
|
count
|
||||||
|
echo $COUNT > $COUNTFILE
|
||||||
|
else
|
||||||
|
COUNT=`cat $COUNTFILE`
|
||||||
|
fi
|
||||||
|
if [[ "$COUNT" -gt 0 ]]; then
|
||||||
|
echo '{"text": "⭳'$COUNT'", "tooltip": "'$COUNT' updates available (click to download)", "class": "updateable"}'
|
||||||
|
elif [ "$REBOOT" ]; then
|
||||||
|
echo '{"text": "↻", "tooltip": "Needs reboot: '$REBOOT'", "class": "needs-reboot"}'
|
||||||
|
else
|
||||||
|
echo '{"text": "🗹", "tooltip": "Up-to-date", "class": "up-to-date"}'
|
||||||
|
fi
|
||||||
|
elif [ "$SUDO_USER" != '' ]; then
|
||||||
|
echo "Don't run with sudo. Run normally, but with a sudoer user"
|
||||||
|
elif [ $UID -eq 0 ]; then
|
||||||
|
echo "Don't run as root. Run normally, but with a sudoer user"
|
||||||
|
elif [ "$1" == 'upgrade' ]; then
|
||||||
|
rpm-ostree upgrade
|
||||||
|
count
|
||||||
|
echo $COUNT > $COUNTFILE
|
||||||
|
elif [ "$1" == 'update' ]; then
|
||||||
|
count
|
||||||
|
echo $COUNT > $COUNTFILE
|
||||||
|
else
|
||||||
|
echo "Missing argument: update, upgrade, bar"
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
/var/home/jpm/scripts/waybar/waybar-pkg-fedora.sh
|
|
@ -0,0 +1 @@
|
||||||
|
/var/home/jpm/scripts/waybar/waybar-pkg-fedora-atomic.sh
|
|
@ -0,0 +1,45 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
COUNTFILE=${HOME}/.local/state/$(hostname)-upgradeable
|
||||||
|
COUNT=0
|
||||||
|
|
||||||
|
function count() {
|
||||||
|
RESULTS="`rpm-ostree upgrade --check 2> /dev/null | grep Diff: | sed 's/.*\([0-9][0-9]*\).*/\1/'`"
|
||||||
|
COUNT=0
|
||||||
|
for i in $RESULTS; do
|
||||||
|
i=`echo $i | sed 's/;//'`
|
||||||
|
let COUNT=$COUNT+$i
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -e $COUNTFILE ] && [[ "$(date +%s) - $(stat -c %Y -- $COUNTFILE)" -gt 360 ]]; then
|
||||||
|
echo $COUNTFILE is older than 1h. Forcing refresh.
|
||||||
|
rm $COUNTFILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" == 'bar' ]; then
|
||||||
|
if [ ! -e $COUNTFILE ]; then
|
||||||
|
count
|
||||||
|
echo $COUNT > $COUNTFILE
|
||||||
|
else
|
||||||
|
COUNT=`cat $COUNTFILE`
|
||||||
|
fi
|
||||||
|
if [ $COUNT -eq 0 ]; then
|
||||||
|
echo '{"text": "🗹", "tooltip": "Up-to-date", "class": "up-to-date"}'
|
||||||
|
else
|
||||||
|
echo '{"text": "⭳'$COUNT'", "tooltip": "'$COUNT' updates available (click to download)", "class": "updateable"}'
|
||||||
|
fi
|
||||||
|
elif [ "$SUDO_USER" != '' ]; then
|
||||||
|
echo "Don't run with sudo. Run normally, but with a sudoer user"
|
||||||
|
elif [ $UID -eq 0 ]; then
|
||||||
|
echo "Don't run as root. Run normally, but with a sudoer user"
|
||||||
|
elif [ "$1" == 'upgrade' ]; then
|
||||||
|
/usr/bin/uxterm -e "rpm-ostree upgrade"
|
||||||
|
count
|
||||||
|
echo $COUNT > $COUNTFILE
|
||||||
|
elif [ "$1" == 'update' ]; then
|
||||||
|
count
|
||||||
|
echo $COUNT > $COUNTFILE
|
||||||
|
else
|
||||||
|
echo "Missing argument: update, upgrade, bar"
|
||||||
|
fi
|
|
@ -6,15 +6,18 @@ VARIANT="$(grep '^VARIANT_ID=' /etc/os-release | cut -d= -f2)"
|
||||||
if [ -n "$VARIANT" ]; then
|
if [ -n "$VARIANT" ]; then
|
||||||
OS="${OS}-${VARIANT}"
|
OS="${OS}-${VARIANT}"
|
||||||
fi
|
fi
|
||||||
|
echo $OS
|
||||||
# Build log file for upgradeable package counts/errors
|
# Build log file for upgradeable package counts/errors
|
||||||
COUNT_FILE="$HOME/.local/state/upgradeable"
|
COUNT_FILE="$HOME/.local/state/upgradeable"
|
||||||
|
echo Default $COUNT_FILE
|
||||||
if [ -f "/run/.containerenv" ] || [ -f "/.dockerenv" ]; then
|
if [ -f "/run/.containerenv" ] || [ -f "/.dockerenv" ]; then
|
||||||
COUNT_FILE="$COUNT_FILE.$(echo "$HOSTNAME" | cut -d'.' -f1)"
|
COUNT_FILE="$COUNT_FILE.$(echo "$HOSTNAME" | cut -d'.' -f1)"
|
||||||
|
echo Container $COUNT_FILE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Build command
|
# Build command
|
||||||
CMD=${0//pkg/pkg-$OS}
|
CMD=${0//pkg/pkg-$OS}
|
||||||
|
echo $CMD
|
||||||
|
|
||||||
# Log error if command does not exist and exit
|
# Log error if command does not exist and exit
|
||||||
if [ ! -f "$CMD" ]; then
|
if [ ! -f "$CMD" ]; then
|
||||||
|
|
Loading…
Reference in New Issue