rconf 0.5.1 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2 @@
1
+ tags
2
+ pkg/*
data/bin/rconf CHANGED
@@ -20,7 +20,7 @@ module RightConf
20
20
 
21
21
  def self.run
22
22
  opts = Trollop::options do
23
- version 'rconf 0.1 (c) 2011 RightScale'
23
+ version "rconf #{VERSION} (c) 2011 RightScale"
24
24
  banner <<-EOS
25
25
  #{DESCRIPTION}
26
26
 
@@ -33,6 +33,7 @@ where [options] are:
33
33
  opt :configurators, 'Show available configurators'
34
34
  opt :config, 'Set path to configuration file', :type => :string
35
35
  opt :output, 'Output file (output to STDOUT by default)', :type => :string
36
+ opt :verbose, 'Print debug output'
36
37
  end
37
38
  if opts[:config].nil?
38
39
  opts[:config] = Dir['./*.rc']
@@ -83,6 +84,7 @@ where [options] are:
83
84
  end
84
85
  ProgressReporter.report_to_stdout
85
86
  ProgressReporter.report_to_file(options[:output]) if options[:output]
87
+ Command.set_verbose if options[:verbose]
86
88
  begin
87
89
  lang = Language.load(options[:config])
88
90
  report_fatal("Validation of configuration file failed:\n -#{lang.validation_errors.join("\n -").map(&:red)}") unless lang.validation_errors.empty?
@@ -92,7 +94,7 @@ where [options] are:
92
94
  raise if e.is_a?(SystemExit)
93
95
  report_fatal("Execution failed with exception '#{e.message.red}'\n#{e.backtrace.join("\n").map(&:grey)}")
94
96
  ensure
95
- lang.configurators.each { |c| report("!!NOTE: #{c.post_note}") if c.post_note }
97
+ lang.configurators.each { |c| report("\n!!NOTE: #{c.post_note}\n".green) if c.post_note }
96
98
  end
97
99
  end
98
100
 
@@ -33,6 +33,11 @@ module RightConf
33
33
  args = args[0..-2]
34
34
  end
35
35
  res = Platform.dispatch(command, *args) { :execute }
36
+ if @verbose
37
+ msg = (([command] + args).join(' ') + ' => ' +
38
+ res.status.to_s + ': ' + res.output).grey
39
+ report(msg)
40
+ end
36
41
  if !res.success? && msg = opts[:abort_on_failure]
37
42
  report_fatal("#{msg}: '#{command} #{args.join(' ')}' returned\n#{res.output}")
38
43
  end
@@ -77,6 +82,14 @@ module RightConf
77
82
  true
78
83
  end
79
84
 
85
+ # Enable debug output
86
+ #
87
+ # === Return
88
+ # true:: Always return true
89
+ def set_verbose
90
+ @verbose = true
91
+ end
92
+
80
93
  end
81
94
 
82
95
  # Command results
@@ -35,7 +35,7 @@ module RightConf
35
35
  res = Command.execute('bundle', '--version')
36
36
  success = (res.output =~ /#{bundler_version}/)
37
37
  report_result(success)
38
- install_bundler(res.success?) unless success
38
+ install_bundler unless success
39
39
  report_check('Installing gems')
40
40
  res = Command.execute('bundle', 'install', :abort_on_failure => 'Failed to install gems')
41
41
  report_success
@@ -55,16 +55,14 @@ module RightConf
55
55
 
56
56
  # Install bundler from gem in cache
57
57
  #
58
- # === Parameters
59
- # exists(FalseClass|TrueClass):: Whether bundler is already installed
60
- # (but is the wrong version)
61
- #
62
58
  # === Return
63
59
  # true:: Always return true
64
60
  #
65
61
  # === Raise
66
62
  # (Exception):: If bundler gem cannot be found or installed
67
- def install_bundler(exists)
63
+ def install_bundler
64
+ res = Command.execute('bundle', '--version')
65
+ exists = res.success? && res.output !~ /exec: bundle: not found/
68
66
  if exists
69
67
  report_check('Uninstalling existing versions of bundler')
70
68
  res = Command.execute('gem', 'uninstall', 'bundler', '-a', '-x',
@@ -56,19 +56,21 @@ module RightConf
56
56
  check_rvmrc
57
57
  Command.execute('rvm', ruby_version, 'exec', 'gem', 'install', 'rconf',
58
58
  :abort_on_failure => "Failed to install rconf gem in #{ruby_version}")
59
- post_note 'Configuration required switching the active ruby, please "cd" into the project directory again to activate it'
59
+ post_note "Configuration required switching the active ruby\nPlease 'cd' into the project directory again to activate it"
60
60
  else
61
61
  report_fatal("Failed to use #{ruby_version}:\n#{out}")
62
62
  end
63
63
  end
64
64
  if gemset
65
65
  report_check("Switching to gemset #{gemset}")
66
- res = Command.execute('rvm', 'gemset', 'list')
66
+ res = Command.execute('rvm', ruby_version, 'gemset', 'list')
67
67
  unless res.output =~ /^#{gemset}$/
68
- Command.execute('rvm', 'gemset', 'create', gemset,
68
+ report_check("Creating gemset #{gemset} for #{ruby_version}")
69
+ Command.execute('rvm', ruby_version, 'gemset', 'create', gemset,
69
70
  :abort_on_failure => "Failed to create gemset '#{gemset}'")
71
+ report_success
70
72
  end
71
- Command.execute('rvm', 'gemset', 'use', gemset,
73
+ Command.execute('rvm', ruby_version, 'gemset', 'use', gemset,
72
74
  :abort_on_failure => "Failed to switch to gemset '#{gemset}'")
73
75
  report_success
74
76
  end
@@ -113,7 +115,7 @@ module RightConf
113
115
  end
114
116
  Dir.chdir(File.join(rvm_src, "rvm-#{version}")) do
115
117
  Command.execute('./install', :abort_on_failure => "Failed to install rvm #{version}")
116
- setup_bashrc
118
+ setup_bashrc
117
119
  end
118
120
  report_success
119
121
  end
@@ -169,7 +171,7 @@ module RightConf
169
171
  content = rvm_bash_activation + "\n" + content
170
172
  FileUtils.mv(bashrc_path, bashrc_path + '.old')
171
173
  File.open(bashrc_path, 'w') { |f| f.puts content }
172
- post_note 'rvm was installed, please reload your shell to activate it'
174
+ post_note 'rvm was installed, please reload your shell to activate it and re-run rconf'
173
175
  end
174
176
  else
175
177
  report_error("Failed to update bashrc to activate rvm, no bashrc found")
@@ -28,6 +28,20 @@ module RightConf
28
28
  true
29
29
  end
30
30
 
31
+ # Format standard message
32
+ #
33
+ # === Parameters
34
+ # message(String):: Message
35
+ #
36
+ # === Return
37
+ # text(String):: Formatted text
38
+ def format_message(msg)
39
+ text = @in_check ? "\n" : ''
40
+ text += super(msg).green
41
+ @in_check = false
42
+ text
43
+ end
44
+
31
45
  # Format new progress report section
32
46
  #
33
47
  # === Parameters
@@ -36,6 +50,7 @@ module RightConf
36
50
  # === Return
37
51
  # text(String):: Formatted text
38
52
  def format_section(section)
53
+ @in_check = false
39
54
  text = super(section).green
40
55
  end
41
56
 
@@ -47,6 +62,7 @@ module RightConf
47
62
  # === Return
48
63
  # text(String):: Formatted text
49
64
  def format_check(check)
65
+ @in_check = true
50
66
  text = super(check)
51
67
  end
52
68
 
@@ -55,6 +71,7 @@ module RightConf
55
71
  # === Return
56
72
  # text(String):: Formatted text
57
73
  def format_success
74
+ @in_check = false
58
75
  text = super.blue
59
76
  end
60
77
 
@@ -63,6 +80,7 @@ module RightConf
63
80
  # === Return
64
81
  # text(String):: Formatted text
65
82
  def format_failure
83
+ @in_check = false
66
84
  text = super.red
67
85
  end
68
86
 
@@ -13,7 +13,7 @@ module RightConf
13
13
 
14
14
  MAJOR = 0
15
15
  MINOR = 5
16
- BUILD = 1
16
+ BUILD = 3
17
17
 
18
18
  VERSION = [MAJOR, MINOR, BUILD].map(&:to_s).join('.')
19
19
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rconf
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.5.1
5
+ version: 0.5.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Raphael Simon
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-03-04 00:00:00 -08:00
13
+ date: 2011-03-05 00:00:00 -08:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -53,6 +53,7 @@ extensions: []
53
53
  extra_rdoc_files: []
54
54
 
55
55
  files:
56
+ - .gitignore
56
57
  - README.rdoc
57
58
  - Rakefile
58
59
  - bin/rconf