ruby Serfの新しいバージョンをダウンロード。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby Serfの新しいバージョンをダウンロード。相关的知识,希望对你有一定的参考价值。
require 'mechanize'
def url
'https://dl.bintray.com/mitchellh/serf/'
end
def download version
puts 'Starting download serf.'
if alredy_downloaded?(version)
puts 'File alredy exists. skipping...'
return
end
puts '======================='
`wget #{url + version}`
puts '======================='
end
def alredy_downloaded? version
File.exists? version
end
def numeric_version str
version_regex = %r([0-9]\.[0-9]\.[0-9])
version = str.match(version_regex).to_s
fail unless version.size >= 3
# convert version number to numeric
# eg. 1.2.3 #=> 123
Proc.new {|ver|
point = 0
point += ver[0].to_i * 100
point += ver[1].to_i * 10
point += ver[2].to_i
}.call(version.split('.'))
end
def latest_version os = :linux_amd64
return @lv if defined? @lv
a = Mechanize.new {|a|
a.user_agent_alias = 'Mac Safari'
}
print "Getting serf versions list..."
page = a.get url
puts ' OK.'
version_regex = {
darwin_386: /darwin_386\.zip/,
darwin_amd64: /darwin_amd64\.zip/,
freebsd_386: /freebsd_386\.zip/,
freebsd_amd64: /freebsd_amd64\.zip/,
linux_386: /linux_386\.zip/,
linux_amd64: /linux_amd64\.zip/,
linux_arm: /linux_arm\.zip/,
openbsd_386: /openbsd_386\.zip/,
openbsd_amd64: /openbsd_amd64\.zip/,
windows_386: /windows_386\.zip/,
windows_amd64: /windows_amd64\.zip/
}[os]
serf_versions = page.links_with(href: version_regex)
@lv = serf_versions.map{|x| x.to_s}.sort.last
end
def current_version
`serf --version`
end
def newer_version_exists?
numeric_version(current_version) < numeric_version(latest_version)
end
if newer_version_exists?
puts 'A newer version found.'
download(latest_version)
puts 'Done.'
else
puts 'Alredy up to date.'
end
以上是关于ruby Serfの新しいバージョンをダウンロード。的主要内容,如果未能解决你的问题,请参考以下文章
markdown EC2インスタンスからファイルをダウンロード
その他トランザクションコード
python 连番JPGをダウンロードするテスト
ruby Macのクリップボードを监视して,设定されたファイル拡张子をwgetで実行フォルダにダウンロード。
markdown SCPでファイルダウンロード&アップロード
golang Golang +杜松子酒でファイルをダウンロードさせる