2011-06-09 15 views
9

Parece que no puedo encontrar una forma fácil de identificar el último lanzamiento de RVM desde la línea de comandos o rvm.beginrescueend.com.?!Buscar la última versión de RVM número

Actualmente escribo rvm get latest cada pocos días o así para actualizar RVM. Si la versión es la misma, RVM realiza el proceso de descarga & independientemente. Me gustaría poder "ver" primero si hay una actualización para obtener.

¿Alguien sabe cómo? Estoy seguro de que me falta lo obvio ...

Respuesta

14

podría utilizar este un trazador de líneas para comprobar la versión:

$ curl -sS https://api.github.com/repos/wayneeseguin/rvm/git/refs/tags | awk -F": |\"" '$2=="ref"{sub(/.*\//,"",$5); print $5}' | sort -V | tail -n 1 
1.15.8 

o una pura rubí un trazador de líneas :

$ ruby -ropen-uri -rjson -e 'open("https://api.github.com/repos/wayneeseguin/rvm/git/refs/tags"){|r| puts JSON.parse(r.read).map{|l| l["ref"].gsub(/.*\//,"").split(".").map(&:to_i)}.sort.last.join(".") }' 
1.15.8 

pero la cosa más sencilla de hacerlo es:

$ curl https://raw.github.com/wayneeseguin/rvm/stable/VERSION 
1.15.8 
+0

Esto es muy útil. Ahora para actualizar condicionalmente rvm, hago 'si [[" $ (rvm --version 2>/dev/null | awk '$ 2! = "" {Print $ 2}') "! =" $ (Curl https: // raw.github.com/wayneeseguin/rvm/stable/VERSION 2>/dev/null) "]]; entonces rvm se estabiliza; fi' – nroose

+0

Necesitaba usar 'https: // raw.githubusercontent.com/rvm/rvm/master/VERSION' – starfry

1

Ok, la magia :) Coloque esto en algún archivo .rb :)

require 'open-uri' 
require 'openssl' 

regex = Regexp.new(/data-name="([0-9]+).([0-9]+).([0-9]+)"/) 
f=open("https://github.com/wayneeseguin/rvm",:ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE) 
v = [] 
f.each_line do |l| 
    regex.match(l) {|m| v << {:full => m[0], :major => m[1].to_i, :minor => m[2].to_i, :inc => m[3].to_i} } 
end 
v.sort_by{|m| [m[:major],m[:minor],m[:inc]] } 
v=v.first 
puts "#{v[:major]}.#{v[:minor]}.#{v[:inc]}" 

no tengo ni idea de por qué acabo de hacer eso.

+0

Niza, * * Creo que no nos dimos cuenta que sería tan complicado!?!?! ** RVM ** necesita un comando 'obsoleto' ... – Meltemi

+0

Bueno, usted pidió una forma de encontrar la última versión RVM disponible, escribí un guión que analiza la página del proyecto Github para usted;) ¿No somos desarrolladores de software de Godsent que puede crear herramientas? Con cambios mínimos, puede utilizar este script para obtener la última versión de casi cualquier otro repositorio de Github :) –

+1

@daekrist su script es complicado, puede hacerlo más fácilmente https://gist.github.com/3546691 – mpapis

0

utilicé:

$ rvm get head && rvm reload 

Se corrió rápido y parecía que hacer el trabajo. Había instalado rvm la semana anterior, rvm 1.15.5, y ya había una versión más nueva, rvm 1.15.8.

Este fue recomendado en:

El rubí en los carriles Tutorial de Michael Hartl http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec-install_ruby

+0

'rvm get' still realiza la instalación mientras @Meltemi solo quiere verificar la actualización. – develop7

+0

Tarda 20 o 30 segundos para mí. – nroose

5

Curl el repositorio RVM así:

curl https://raw.githubusercontent.com/rvm/rvm/master/VERSION 
Cuestiones relacionadas