Sha256: 3e266076b51ab4d923556031a7b4638a99e8ae427479bf1e2f8bd628997a385e
Contents?: true
Size: 1.31 KB
Versions: 26
Compression:
Stored size: 1.31 KB
Contents
# @@update desc 'Update doing to the latest version' long_desc 'Checks for the latest available version of doing and updates your local install if needed.' command %i[update] do |c| c.example 'doing update', desc: 'Update to the latest version' c.desc 'Check for pre-release version' c.switch %i[p pre beta], negatable: false, default_value: false c.action do |global_options, options, args| my_version = `doing -v`.match(/doing version (?<v>[\d.]+)(?:\.?pre[,)])?/)['v'] if options[:beta] latest_version = `gem search doing --pre`.match(/^doing \((?<v>[\d.]+)\.?pre[,)]/)['v'] else latest_version = `gem search doing`.match(/^doing \((?<v>[\d.]+)\)/)['v'] end my_version = Doing::Version.new(my_version) latest_version = Doing::Version.new(latest_version) outdated = my_version.compare(latest_version, :older) if outdated pre = options[:beta] ? '--pre' : '' res = `gem install doing #{pre} 2> /dev/null` res = `sudo gem install doing #{pre}` unless res ver = res.match(/doing-(?<v>[\d.]+)\n/)['v'] if ver Doing.logger.info("Version #{ver} installed") else Doing.logger.error('Error installing latest version') end else Doing.logger.info("You have the latest version (#{my_version}) installed") end end end
Version data entries
26 entries across 26 versions & 1 rubygems