45 lines
1.1 KiB
Bash
Executable File
45 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# omarchy:summary=Check whether Omarchy updates are available.
|
|
|
|
set -euo pipefail
|
|
|
|
updates=()
|
|
|
|
if [[ $OMARCHY_PATH != "/usr/share/omarchy" ]]; then
|
|
upstream=$(git -C "$OMARCHY_PATH" rev-parse --abbrev-ref --symbolic-full-name '@{upstream}' 2>/dev/null || true)
|
|
if [[ -n $upstream ]]; then
|
|
GIT_TERMINAL_PROMPT=0 timeout 10 git -C "$OMARCHY_PATH" fetch --quiet 2>/dev/null || true
|
|
|
|
behind=$(git -C "$OMARCHY_PATH" rev-list --count "HEAD..$upstream" 2>/dev/null || echo 0)
|
|
if (( behind > 0 )); then
|
|
commit_label=commits
|
|
(( behind == 1 )) && commit_label=commit
|
|
updates+=("omarchy-dev-checkout $behind new $commit_label on $upstream")
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
package=""
|
|
if pacman -Qq omarchy-dev >/dev/null 2>&1; then
|
|
package=omarchy-dev
|
|
elif pacman -Qq omarchy >/dev/null 2>&1; then
|
|
package=omarchy
|
|
fi
|
|
|
|
if [[ -n $package ]]; then
|
|
update=$(checkupdates --nocolor 2>/dev/null | awk -v package="$package" '$1 == package { print; exit }' || true)
|
|
fi
|
|
|
|
if [[ -n ${update:-} ]]; then
|
|
updates+=("$update")
|
|
fi
|
|
|
|
if (( ${#updates[@]} > 0 )); then
|
|
printf '%s\n' "${updates[@]}"
|
|
exit 0
|
|
else
|
|
echo "Omarchy is up to date"
|
|
exit 1
|
|
fi
|