¿Cómo encontrar programáticamente el último número de versión de Homebrew?

¿Cómo encontrar programáticamente el último número de versión de Homebrew?

Puedo encontrar esto en mi computadora local con brew --version y string procesan el resultado para get un número de versión. ¿Cuál es una buena manera de getlo para el Homebrew lanzado? Me gustaría verificar mediante progtwigción que el homebrew está actualizado para muchas computadoras.

  • Localizador de puntero de mouse
  • ¿Cliente de lector de RSS gratuito para Mac con nueva notificación de publicación?
  • ¿Cómo sé qué cambios quiere hacer un progtwig?
  • MacBook Pro (finales de 2011) problemas de sonido en Windows 10 (sin Bootcamp)
  • Control de la misión; ¿Cómo corrijo el order de los escritorios? Tengo 1, 2, 4, 5, 3, 6, 7?
  • Actualice iPad2 a la versión anterior de iOS (de 4 a 6, pero no a 7)
  • Después de eliminar una aplicación en mi iPhone, iTunes la copy en la siguiente synchronization
  • Sugerencias para una solución completa de monitoreo de networking
  • ¿Cómo iniciar el modo de recuperación en una máquina virtual Mac OS X en Parallels?
  • Las películas que no puedo encontrar ocupan 200 GB en Mac
  • Error irreparable en la estructura del disco en Onyx
  • ¿Cómo instalo la impresora hp officejet 4610/4620 en mi iPad IPad de cuarta generación?
  • One Solution collect form web for “¿Cómo encontrar programáticamente el último número de versión de Homebrew?”

    Yo personalmente no uso Homebrew, así que si hay una forma de usar brew para get el último número de versión disponible en línea, no lo sé.

    Tenga en count que desde el 27 de junio de 2012 y la versión 0.9.1 de Homebrew, la numeración de la versión ha mantenido un patrón típico establecido de major.minor.maintenance , utilizando solo numbers separados por un período. Por lo tanto, es relativamente fácil probar que los valores devueltos por las sustituciones de command utilizadas para asignarlos a la versión instalada y las últimas variables de versión de lanzamiento siguen este patrón.

    Una vez que se testingn, las cadenas de versión se convierten a numbers para que una comparación binaria pueda determinar si la versión instalada es menor que la versión de lanzamiento más reciente, momento en el que se puede tomar la acción adecuada.

    El siguiente script bash es un ejemplo de cómo uno podría codificarlo :

     #!/bin/bash # Get installed version number and latest release version number. localHomebrewVersion="$(brew --version | awk '/Homebrew [0-9]/{print $2}')" latestHomebrewRelease="$(curl -sL https://api.github.com/repos/Homebrew/brew/releases/latest | ruby -rjson -e 'puts JSON.parse($<.read)["name"]')" # Test that both variables hold the expected pattern. if [[ $localHomebrewVersion =~ [0-9]\.[0-9]{1,2}\.[0-9]{1,2} ]] && [[ $latestHomebrewRelease =~ [0-9]\.[0-9]{1,2}\.[0-9]{1,2} ]]; then # Function used to convert string version numbers to numeric values for testing. function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d", $1,$2,$3,$4); }'; } # Test to see if the installed version number is less than the latest release version. if [[ $(version $localHomebrewVersion) -lt $(version $latestHomebrewRelease) ]]; then brew update else echo "Homebrew is already up-to-date." fi else # One or both of the command substitutions '$(...)' returned unexpected output for the version variables. echo "At least one of the version variables contains an unexpected value." fi 

    Nota: He incorporado el command sugerido en el comentario de Synoli para asignar a la latestHomebrewRelease variable de latestHomebrewRelease , ya que ciertamente parece ser un método más estable para get la última versión de la información de la versión.

    Actualización: se agregó una testing para ver que las variables de versión contengan el patrón esperado antes de probar si la versión instalada es menor que la versión de lanzamiento más reciente.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).