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 +杜松子酒でファイルをダウンロードさせる