Advertisement
ucomesdag

ansible-platforms

Jul 9th, 2023
782
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.93 KB | None | 0 0
  1. ansible-platforms () {
  2.   result=""
  3.   page=1
  4.   next=""
  5.  
  6.   echo "PLATFORMS:"
  7.   echo "==========="
  8.  
  9.   while [ "$next" != "null" ]; do
  10.     json=$(curl -s https://galaxy.ansible.com/api/v1/platforms/?page=$page | jq)
  11.     next=$(echo "$json" | jq .next)
  12.     result="$result $(echo "$json" | jq '.results | .[]')"
  13.     let "page++"
  14.   done
  15.  
  16.   result=$(echo $result | jq '{name: (.name), versions: [.release]}')
  17.   platforms=$(echo $result | jq -r '[inputs | .name] | unique[]')
  18.  
  19.   PS3=$'\n'"Select a platform or 0 to exit: "
  20.   SAVEIFS=$IFS
  21.   IFS=$'\n'
  22.   while true; do
  23.     select platform in $platforms
  24.     do
  25.       [ $REPLY -eq 0 ] && break
  26.       echo -e "\n\033[1m$platform:\033[0m"
  27.       versions=$(echo $result | jq -r "select(.name==\"$platform\")  | .versions[]")
  28.       for version in $versions; do
  29.         echo "  $version"
  30.       done
  31.       echo
  32.       break
  33.     done
  34.     [ $REPLY -eq 0 ] && break
  35.   done
  36.   IFS=$SAVEIFS
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement