Class: RightConf::MercurialConfigurator

Inherits:
Object
  • Object
show all
Includes:
Configurator
Defined in:
lib/rconf/configurators/mercurial_configurator.rb

Constant Summary collapse

MAC_MERCURIAL_URL =
'http://mercurial.berkwood.com/binaries/Mercurial-1.8.1-py2.6-macosx10.6.zip'
MAC_10_7_MERCURIAL_URL =
'http://mercurial.berkwood.com/binaries/Mercurial-2.0.2-py2.7-macosx10.7.zip'
MAC_MERCURIAL_FILE =
'mercurial-1.8.1_20110310-py2.6-macosx10.6'
MAC_10_7_MERCURIAL_FILE =
'mercurial-2.0.2_20120104-py2.7-macosx10.7'

Instance Method Summary collapse

Methods included from Configurator

#[], #check, included, #post_process, #run, #signature, #validate

Methods included from ProgressReporter

included, report_to_file, report_to_stdout

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class RightConf::Configurator

Instance Method Details

#check_linuxObject Also known as: check_darwin, check_windows

Check whether Mercurial is installed

Return

true

If Mercurial is installed

false

Otherwise



34
35
36
37
38
39
# File 'lib/rconf/configurators/mercurial_configurator.rb', line 34

def check_linux
  report_check("Checking for Mercurial")
  installed = Command.execute('hg', '--version').success?
  report_result(installed)
  installed
end

#mac_mercurial_fileObject

File name of mercurial installer for Mac OS X



93
94
95
# File 'lib/rconf/configurators/mercurial_configurator.rb', line 93

def mac_mercurial_file
  Platform.dispatch { :mac_mercurial_file }
end

#mac_mercurial_file_darwinObject

File name of mercurial installer for Mac OS X < 10.7



98
99
100
# File 'lib/rconf/configurators/mercurial_configurator.rb', line 98

def mac_mercurial_file_darwin
  MAC_MERCURIAL_FILE
end

#mac_mercurial_file_darwin_lionObject

File name of mercurial installer for Mac OS X >= 10.7



103
104
105
# File 'lib/rconf/configurators/mercurial_configurator.rb', line 103

def mac_mercurial_file_darwin_lion
  MAC_10_7_MERCURIAL_FILE
end

#mac_mercurial_urlObject

URL to mercurial installer for Mac OS X



78
79
80
# File 'lib/rconf/configurators/mercurial_configurator.rb', line 78

def mac_mercurial_url
  Platform.dispatch { :mac_mercurial_url }
end

#mac_mercurial_url_darwinObject

URL to mercurial installer for Mac OS X < 10.7



83
84
85
# File 'lib/rconf/configurators/mercurial_configurator.rb', line 83

def mac_mercurial_url_darwin
  MAC_MERCURIAL_URL
end

#mac_mercurial_url_darwin_lionObject

URL to mercurial installer for Mac OS X >= 10.7



88
89
90
# File 'lib/rconf/configurators/mercurial_configurator.rb', line 88

def mac_mercurial_url_darwin_lion
  MAC_10_7_MERCURIAL_URL
end

#run_darwinObject

Brew does not have a package for mercurial :(

Return

true

Always return true



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/rconf/configurators/mercurial_configurator.rb', line 56

def run_darwin
  report_check('Installing Mercurial')
  tempdir = File.join(ENV['HOME'], '.rconf_temp')
  FileUtils.mkdir_p(tempdir)
  begin
    Dir.chdir(tempdir) do
      Command.execute('curl', '-O', '-f', mac_mercurial_url,
                      abort_option('Failed to download Mercurial'))
      Command.execute('unzip', File.basename(mac_mercurial_url),
                      abort_option('Failed to unzip Mercurial'))
    end
    Dir.chdir(File.join(tempdir, mac_mercurial_file)) do
      Command.sudo('installer', '-pkg', mac_mercurial_file.gsub('_', '+') + '.mpkg', '-target', '/',
                   abort_option('Failed to install Mercurial'))
    end
  ensure
    FileUtils.rm_rf(tempdir)
  end
  report_success
end

#run_linuxObject

Install Linux Mercurial package

Return

true

Always return true



47
48
49
50
# File 'lib/rconf/configurators/mercurial_configurator.rb', line 47

def run_linux
  opts = { :report => true }.merge(abort_option('Failed to install Mercurial'))
  PackageInstaller.install('mercurial', opts)
end

#run_windowsObject

Install Windows software

Return

true

Always return true



111
112
113
# File 'lib/rconf/configurators/mercurial_configurator.rb', line 111

def run_windows
  # TBD
end