mirror of
https://github.com/jimeh/dotfiles.git
synced 2026-02-19 11:46:40 +00:00
Update Homebrew-related bitbar scripts
This commit is contained in:
53
bitbar/brew-cask-upgrades.1h.sh
Executable file
53
bitbar/brew-cask-upgrades.1h.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
# <bitbar.title>Homebrew Cask Upgrades</bitbar.title>
|
||||
# <bitbar.version>1.0.0</bitbar.version>
|
||||
# <bitbar.author>Jim Myhrberg</bitbar.author>
|
||||
# <bitbar.author.github>jimeh</bitbar.author.github>
|
||||
# <bitbar.desc>Show outdated Homebrew Cask formula</bitbar.desc>
|
||||
# <bitbar.image>https://i.imgur.com/VUMVwZM.png</bitbar.image>
|
||||
# <bitbar.dependencies>bash</bitbar.dependencies>
|
||||
|
||||
shopt -s extglob
|
||||
|
||||
main() {
|
||||
local count
|
||||
local formulas
|
||||
local current_version
|
||||
local new_version
|
||||
|
||||
formulas=()
|
||||
current_version=()
|
||||
new_version=()
|
||||
|
||||
/usr/local/bin/brew update &> /dev/null
|
||||
|
||||
while read -r line; do
|
||||
if [[ "$line" =~ ^(.+)\ \((.+)\)\ !=\ (.*)$ ]]; then
|
||||
formulas+=("${BASH_REMATCH[1]}")
|
||||
current_version+=("${BASH_REMATCH[2]}")
|
||||
new_version+=("${BASH_REMATCH[3]}")
|
||||
fi
|
||||
done < <(/usr/local/bin/brew cask outdated -v)
|
||||
|
||||
count="${#formulas[@]}"
|
||||
|
||||
echo ":tropical_drink:↑${count} | dropdown=false"
|
||||
echo '---'
|
||||
echo "$count outdated casks"
|
||||
|
||||
if [ "$count" -gt 0 ]; then
|
||||
echo 'Upgrade all casks | terminal=true refresh=true' \
|
||||
'bash=/usr/local/bin/brew param1=cask param2=upgrade'
|
||||
echo '---'
|
||||
|
||||
echo 'Upgrade:'
|
||||
for i in "${!formulas[@]}"; do
|
||||
echo "${formulas[$i]}"
|
||||
echo "--${current_version[$i]} → ${new_version[$i]} |" \
|
||||
"terminal=true refresh=true bash=/usr/local/bin/brew param1=cask" \
|
||||
"param2=upgrade param3=${formulas[$i]}"
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/bin/bash
|
||||
# <bitbar.title>Homebrew Updates</bitbar.title>
|
||||
# <bitbar.author>killercup</bitbar.author>
|
||||
# <bitbar.author.github>killercup</bitbar.author.github>
|
||||
# <bitbar.desc>List available updates from Homebrew (OS X)</bitbar.desc>
|
||||
|
||||
exit_with_error() {
|
||||
echo "err | color=red";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
/usr/local/bin/brew update > /dev/null #|| exit_with_error;
|
||||
|
||||
PINNED=$(/usr/local/bin/brew list --pinned);
|
||||
OUTDATED=$(/usr/local/bin/brew outdated --quiet);
|
||||
|
||||
UPDATES=$(comm -13 <(for X in "${PINNED[@]}"; do echo "${X}"; done) <(for X in "${OUTDATED[@]}"; do echo "${X}"; done))
|
||||
|
||||
UPDATE_COUNT=$(echo "$UPDATES" | grep -c '[^[:space:]]');
|
||||
|
||||
echo "↑$UPDATE_COUNT | dropdown=false"
|
||||
echo "---";
|
||||
if [ -n "$UPDATES" ]; then
|
||||
echo "Upgrade all | bash=/usr/local/bin/brew param1=upgrade terminal=false refresh=true"
|
||||
echo "$UPDATES" | awk '{print $0 " | terminal=false refresh=true bash=/usr/local/bin/brew param1=upgrade param2=" $1}'
|
||||
fi
|
||||
102
bitbar/brew-upgrades.1h.sh
Executable file
102
bitbar/brew-upgrades.1h.sh
Executable file
@@ -0,0 +1,102 @@
|
||||
#!/bin/bash
|
||||
# <bitbar.title>Homebrew Upgrades</bitbar.title>
|
||||
# <bitbar.version>1.0.0</bitbar.version>
|
||||
# <bitbar.author>Jim Myhrberg</bitbar.author>
|
||||
# <bitbar.author.github>jimeh</bitbar.author.github>
|
||||
# <bitbar.desc>Show outdated Homebrew formula</bitbar.desc>
|
||||
# <bitbar.image>https://i.imgur.com/bZn3RYs.png</bitbar.image>
|
||||
# <bitbar.dependencies>bash,comm,grep,printf</bitbar.dependencies>
|
||||
|
||||
shopt -s extglob
|
||||
|
||||
main() {
|
||||
local count
|
||||
local pinned
|
||||
local pinned_list
|
||||
local formulas
|
||||
local formulas_list
|
||||
local current_version
|
||||
local new_version
|
||||
local pinned_version
|
||||
local pkg
|
||||
|
||||
pinned=()
|
||||
formulas=()
|
||||
current_version=()
|
||||
new_version=()
|
||||
pinned_version=()
|
||||
|
||||
/usr/local/bin/brew update &> /dev/null
|
||||
|
||||
while read -r line; do
|
||||
pinned+=("$line")
|
||||
done < <(/usr/local/bin/brew list --pinned)
|
||||
|
||||
while read -r line; do
|
||||
if [[ "$line" =~ ^(.+)\ \((.+)\)\ \<\ (.*)\ \[pinned\ at\ (.*)]$ ]]; then
|
||||
formulas+=("${BASH_REMATCH[1]}")
|
||||
current_version+=("${BASH_REMATCH[2]}")
|
||||
new_version+=("${BASH_REMATCH[3]}")
|
||||
pinned_version+=("${BASH_REMATCH[4]}")
|
||||
elif [[ "$line" =~ ^(.+)\ \((.+)\)\ \<\ (.*)$ ]]; then
|
||||
formulas+=("${BASH_REMATCH[1]}")
|
||||
current_version+=("${BASH_REMATCH[2]}")
|
||||
new_version+=("${BASH_REMATCH[3]}")
|
||||
pinned_version+=("NONE")
|
||||
fi
|
||||
done < <(/usr/local/bin/brew outdated -v)
|
||||
|
||||
pinned_list="$(printf '%s\n' "${pinned[@]}" | sort)"
|
||||
formulas_list="$(printf '%s\n' "${formulas[@]}" | sort)"
|
||||
|
||||
count="$(
|
||||
comm -13 <(echo "$pinned_list") <(echo "$formulas_list") \
|
||||
| grep -c '[^[:space:]]'
|
||||
)"
|
||||
|
||||
echo ":beer:↑${count} | dropdown=false"
|
||||
echo '---'
|
||||
if [ "${#pinned[@]}" -gt 0 ]; then
|
||||
echo "$count outdated formula (${#pinned[@]} pinned)"
|
||||
else
|
||||
echo "$count outdated formula"
|
||||
fi
|
||||
|
||||
if [ "$count" -gt 0 ]; then
|
||||
echo 'Upgrade all formula | terminal=true refresh=true' \
|
||||
'bash=/usr/local/bin/brew param1=upgrade'
|
||||
echo '---'
|
||||
|
||||
echo 'Upgrade:'
|
||||
for i in "${!formulas[@]}"; do
|
||||
pkg="${formulas[$i]}"
|
||||
|
||||
if echo "$pinned_list" | grep "${pkg}" > /dev/null; then
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "$pkg"
|
||||
echo "--${current_version[$i]} → ${new_version[$i]} |" \
|
||||
"terminal=true refresh=true bash=/usr/local/bin/brew" \
|
||||
"param1=upgrade param2=${pkg}"
|
||||
done
|
||||
|
||||
if [ "${#pinned[@]}" -gt 0 ]; then
|
||||
|
||||
echo '---'
|
||||
echo 'Pinned:'
|
||||
for i in "${!formulas[@]}"; do
|
||||
pkg="${formulas[$i]}"
|
||||
|
||||
if ! echo "$pinned_list" | grep "${pkg}" > /dev/null; then
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "$pkg"
|
||||
echo "--${pinned_version[$i]} → ${new_version[$i]}"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user