diff --git a/plugins.d/homebrew.sh b/plugins.d/homebrew.sh index fcfd896..1ead821 100755 --- a/plugins.d/homebrew.sh +++ b/plugins.d/homebrew.sh @@ -66,63 +66,141 @@ if [ -n "$brew_pinned" ]; then echo "To update a pinned package, you need to un-pin it manually (brew unpin )" echo "" - # Remove pinned package from the update packages list - - k="" - upd4=$(echo "$upd3" | tr -d '\n') - - for j in $brew_pinned - do - upd4=${upd4/$j/$k} - done - - # If no update package - upd4=$(echo "$upd4" | tr -s ' ') - -else - upd4="$upd3" fi # Un paquet pinned est dans 'brew outdated' -brew_outdated=$(brew outdated) -upd3=$(echo "$brew_outdated" | awk '{print $1}') +if [ -x "$(command -v jqs)" ]; then + brew_outdated=$(brew outdated --json) + + upd3=$(echo "$brew_outdated" ) + +else + brew_outdated=$(brew outdated) + + upd3=$(echo "$brew_outdated" | awk '{print $1}') + +fi + +#upd3=$(echo "$brew_outdated" | awk '{print $1}') +#upd3=$(echo "$brew_outdated" ) + +echo "$upd3" if [ -n "$upd3" ]; then + + # Display info on outdated packages if [ "$display_info" = true ]; then echo -e "\033[4mInfo on updated packages:\033[0m" + + if [ -x "$(command -v jqs)" ]; then + # ok avec jq installé + + for row in $(jq -c '.[]' <<< "$upd3"); + do + + #echo ${row} # = echo "$row" + + if [ -x "$(command -v jq)" ]; then + name=$(echo "$row" | jq -j '.name, "\n"'); + pinned=$(echo "$row" | jq -j '.pinned, "\n"'); + pinned_v=$(echo "$row" | jq -j '.pinned_version, "\n"'); + iv=$(echo "$row" | jq -j '.installed_versions, "\n"'); + installed_v=$(echo "$iv" | jq -j '.[]'); + #echo "$iv" + current_v=$(echo "$row" | jq -j '.current_version, "\n"'); + + #info_pkg=$(brew info --json=v1 "$name") + homepage=$(echo "$info_pkg" | jq -r .[].homepage) + desc=$(echo "$info_pkg" | jq -r .[].desc) + #current=$(echo "$info_pkg" | jq -r .[].installed[].version | tail -n 1 | awk '{print $1}') + #stable=$(echo "$info_pkg" | jq -r .[].versions.stable) + #pined=$(echo "$info_pkg" | jq -r .[].pinned) + + if [ "$pinned" = "true" ]; then echo -e "\033[1;31m$name: installed: $installed_v stable: $current_v [pinned at $pinned_v]\033[0m"; + else echo -e "\033[1;37m$name: installed: $installed_v stable: $current_v\033[0m"; + fi + echo "$desc" + echo "$homepage" + echo "" + fi + done + else + + # test sans jq + + for pkg in "$upd3" + do + echo "$pkg" + echo "---" + #info=$(brew info "$pkg") + #echo "$info" + +<