build-tool 0.5.7 → 0.6.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. data/.gitignore +1 -0
  2. data/.rvmrc +1 -0
  3. data/.yardopts +1 -0
  4. data/Gemfile +5 -0
  5. data/Gemfile.lock +56 -0
  6. data/History.txt +64 -0
  7. data/README.txt +0 -7
  8. data/Rakefile +8 -56
  9. data/bin/build-tool +4 -1
  10. data/build-tool.gemspec +62 -0
  11. data/db/migrations/20110703074000_add_command_logs.rb +17 -0
  12. data/db/migrations/20110703075000_add_module_logs.rb +20 -0
  13. data/db/migrations/20110815170000_add_features.rb +17 -0
  14. data/db/migrations/20120103204700_add_modules.rb +17 -0
  15. data/db/migrations/20120106181200_add_settings.rb +18 -0
  16. data/lib/build-tool.rb +3 -4
  17. data/lib/build-tool/application.rb +127 -37
  18. data/lib/build-tool/build-system/autoconf.rb +2 -8
  19. data/lib/build-tool/build-system/base.rb +12 -4
  20. data/lib/build-tool/build-system/cmake.rb +2 -0
  21. data/lib/build-tool/build-system/custom.rb +2 -0
  22. data/lib/build-tool/build-system/kdel10n.rb +2 -0
  23. data/lib/build-tool/build-system/make.rb +2 -0
  24. data/lib/build-tool/build-system/none.rb +2 -0
  25. data/lib/build-tool/build-system/qmake.rb +2 -0
  26. data/lib/build-tool/build-system/qt.rb +4 -0
  27. data/lib/build-tool/cfg/lexer.rex +40 -8
  28. data/lib/build-tool/cfg/lexer_base.rb +3 -1
  29. data/lib/build-tool/cfg/node.rb +17 -1
  30. data/lib/build-tool/cfg/parser.y +92 -10
  31. data/lib/build-tool/cfg/visitor.rb +202 -78
  32. data/lib/build-tool/command_actions.rb +26 -10
  33. data/lib/build-tool/commands.rb +289 -197
  34. data/lib/build-tool/commands/build.rb +13 -9
  35. data/lib/build-tool/commands/configuration.rb +25 -0
  36. data/lib/build-tool/commands/configuration/edit.rb +42 -0
  37. data/lib/build-tool/commands/configuration/list.rb +48 -0
  38. data/lib/build-tool/commands/configure.rb +9 -5
  39. data/lib/build-tool/commands/ctags.rb +8 -3
  40. data/lib/build-tool/commands/environments.rb +2 -4
  41. data/lib/build-tool/commands/environments/list.rb +13 -10
  42. data/lib/build-tool/commands/environments/set.rb +5 -1
  43. data/lib/build-tool/commands/features.rb +24 -0
  44. data/lib/build-tool/commands/features/disable.rb +70 -0
  45. data/lib/build-tool/commands/features/enable.rb +66 -0
  46. data/lib/build-tool/commands/features/list.rb +92 -0
  47. data/lib/build-tool/commands/fetch.rb +9 -3
  48. data/lib/build-tool/commands/files.rb +9 -5
  49. data/lib/build-tool/commands/gc.rb +48 -15
  50. data/lib/build-tool/commands/history.rb +21 -16
  51. data/lib/build-tool/commands/info.rb +16 -13
  52. data/lib/build-tool/commands/install.rb +8 -4
  53. data/lib/build-tool/commands/modules.rb +2 -4
  54. data/lib/build-tool/commands/modules/cleanup.rb +52 -0
  55. data/lib/build-tool/commands/modules/disable.rb +95 -0
  56. data/lib/build-tool/commands/modules/enable.rb +52 -0
  57. data/lib/build-tool/commands/modules/info.rb +44 -35
  58. data/lib/build-tool/commands/modules/list.rb +67 -15
  59. data/lib/build-tool/commands/modules/shell.rb +8 -2
  60. data/lib/build-tool/commands/rebase.rb +15 -7
  61. data/lib/build-tool/commands/recipes.rb +2 -4
  62. data/lib/build-tool/commands/recipes/add.rb +16 -2
  63. data/lib/build-tool/commands/recipes/edit.rb +72 -0
  64. data/lib/build-tool/commands/recipes/incoming.rb +11 -7
  65. data/lib/build-tool/commands/recipes/info.rb +12 -8
  66. data/lib/build-tool/commands/recipes/install.rb +37 -42
  67. data/lib/build-tool/commands/recipes/list.rb +6 -2
  68. data/lib/build-tool/configuration.rb +88 -3
  69. data/lib/build-tool/environment.rb +2 -0
  70. data/lib/build-tool/errors.rb +5 -0
  71. data/lib/build-tool/history.rb +3 -181
  72. data/lib/build-tool/model/command_log.rb +93 -0
  73. data/lib/build-tool/model/feature.rb +80 -0
  74. data/lib/build-tool/{module.rb → model/module.rb} +110 -29
  75. data/lib/build-tool/model/module_log.rb +64 -0
  76. data/lib/build-tool/model/setting.rb +84 -0
  77. data/lib/build-tool/recipe.rb +40 -18
  78. data/lib/build-tool/repository.rb +39 -33
  79. data/lib/build-tool/server.rb +27 -3
  80. data/lib/build-tool/singleton.rb +2 -0
  81. data/lib/build-tool/sshkey.rb +2 -0
  82. data/lib/build-tool/state_helper.rb +64 -0
  83. data/lib/build-tool/vcs/archive.rb +3 -1
  84. data/lib/build-tool/vcs/base.rb +13 -0
  85. data/lib/build-tool/vcs/git-svn.rb +36 -14
  86. data/lib/build-tool/vcs/git.rb +180 -44
  87. data/lib/build-tool/vcs/mercurial.rb +25 -13
  88. data/lib/build-tool/vcs/svn.rb +20 -15
  89. data/lib/build-tool/version.rb +30 -0
  90. data/lib/mj/error.rb +2 -0
  91. data/lib/mj/logging.rb +2 -0
  92. data/lib/mj/mixins/inherited_attributes.rb +73 -0
  93. data/lib/mj/tools/editor.rb +34 -0
  94. data/lib/mj/tools/ssh.rb +2 -0
  95. data/lib/mj/tools/subprocess.rb +2 -1
  96. data/lib/mj/vcs/git.rb +14 -2
  97. data/lib/mj/visitor.rb +22 -0
  98. data/tasks/db.rake +36 -0
  99. data/tasks/racc.rake +14 -0
  100. data/tasks/rdoc.rake +8 -0
  101. data/tasks/rexical.rake +14 -0
  102. data/tasks/test.rake +21 -0
  103. data/test/integration/history_test.rb +88 -0
  104. data/test/integration/parser_configuration.rb +36 -0
  105. data/test/integration/parser_environment_parser.rb +156 -0
  106. data/test/integration/parser_feature_test.rb +75 -0
  107. data/test/integration/parser_git-svn_test.rb +92 -0
  108. data/test/integration/parser_git_test.rb +97 -0
  109. data/test/integration/parser_mercurial_test.rb +77 -0
  110. data/test/integration/parser_module_test.rb +103 -0
  111. data/test/integration/parser_svn_test.rb +92 -0
  112. data/test/integration/parser_test.rb +73 -0
  113. data/test/test_helper.rb +61 -0
  114. data/test/unit/configuration_test.rb +36 -0
  115. data/test/unit/git_configuration_test.rb +163 -0
  116. data/test/unit/git_svn_configuration_test.rb +240 -0
  117. data/test/unit/mercurial_configuration_test.rb +64 -0
  118. data/test/unit/model/command_log_test.rb +103 -0
  119. data/test/unit/model/feature_test.rb +29 -0
  120. data/test/unit/model/module_log_test.rb +70 -0
  121. data/test/unit/model/module_test.rb +32 -0
  122. data/test/unit/repository_test.rb +110 -0
  123. data/test/unit/server_test.rb +66 -0
  124. data/test/unit/svn_configuration_test.rb +90 -0
  125. metadata +134 -93
  126. data/Manifest.txt +0 -80
  127. data/db/migrations/001_command_histories.rb +0 -20
  128. data/db/migrations/002_module_events.rb +0 -24
  129. data/db/migrations/003_command_histories_add_logfile.rb +0 -19
  130. data/lib/build-tool/GUI.rb +0 -360
  131. data/lib/build-tool/commands/help.rb +0 -22
  132. data/lib/build-tool/commands/lsfeatures.rb +0 -76
  133. data/lib/build-tool/feature.rb +0 -47
@@ -0,0 +1,66 @@
1
+ # -*- coding: UTF-8 -*-
2
+
3
+ require 'build-tool/commands'
4
+
5
+ module BuildTool; module Commands; module Features
6
+
7
+ #
8
+ # BuildCommand
9
+ #
10
+ class Enable < Standard
11
+
12
+ name 'enable'
13
+ description 'Enable the given features.'
14
+ long_description [ 'Sets the features status.' ]
15
+
16
+ def initialize_options
17
+ options.banner = "Usage: #{self.fullname} [OPTIONS]... FEATURE..."
18
+ options.separator( "" )
19
+ options.separator( "Options" )
20
+
21
+ @default = false
22
+ options.on( "--default", "Set to use default state if possible." ) { |t|
23
+ @default = true
24
+ }
25
+
26
+ super
27
+ end
28
+
29
+ def applicable?
30
+ BuildTool::Application.instance.has_recipe?
31
+ end
32
+
33
+ def do_execute( args )
34
+
35
+ for feat in args
36
+ enable_feature( feat )
37
+ end
38
+
39
+ configuration.save()
40
+
41
+ return 0
42
+ end
43
+
44
+ def enable_feature( name )
45
+ feature = configuration.features[name]
46
+
47
+ if feature.nil?
48
+ error( "Unknown feature '%s'" % name )
49
+ return -1
50
+ end
51
+
52
+ if @default and feature.default_active? == true
53
+ info( '%-35s: using default (enabled).' % feature.name )
54
+ feature.active = nil
55
+ else
56
+ info( '%-35s: enabled explicitely.' % feature.name )
57
+ feature.active = true
58
+ end
59
+ end
60
+
61
+ end # class Activate
62
+
63
+ end; end; end # module BuildTool::Commands::Modules
64
+
65
+
66
+
@@ -0,0 +1,92 @@
1
+ # -*- coding: UTF-8 -*-
2
+
3
+ require 'build-tool/commands'
4
+
5
+ module BuildTool; module Commands; module Features
6
+
7
+ #
8
+ # BuildCommand
9
+ #
10
+ class List < Standard
11
+
12
+ name "list"
13
+ description "Print a list of features."
14
+ long_description [
15
+ "Prints a list of features. Withput a parameter all active features are shown. When given",
16
+ "parameters lists all features matching them.",
17
+ "",
18
+ "The first column of the output is one character wide:",
19
+ " First column: Is the module active?",
20
+ " 'A': Active",
21
+ " 'I': Inactive",
22
+ " Second column: The feature name.",
23
+ " Third column: The features short description." ]
24
+ cmdalias "lsfeatures"
25
+
26
+ def initialize_options
27
+ options.banner = "Usage: #{self.fullname} [OPTIONS]... [FEATURES]..."
28
+ options.separator( "" )
29
+ options.separator( "Options" )
30
+
31
+ options.on( "--all", "Include inactive modules." ) {
32
+ @all = true
33
+ }
34
+
35
+ super
36
+ end
37
+
38
+ def applicable?
39
+ BuildTool::Application.instance.has_recipe?
40
+ end
41
+
42
+ def do_execute( args )
43
+ if args.length > 1
44
+ # *TODO* print better message
45
+ return usage "To many arguments."
46
+ end
47
+
48
+ if args.length == 1
49
+ return show_feature( args[0] )
50
+ else
51
+ return list_features
52
+ end
53
+ end
54
+
55
+ def list_features
56
+ features = configuration.features
57
+ features.keys.sort.each do |name|
58
+ feature = features[name]
59
+ # skip inactive features if --all was not specified.
60
+ next if not feature.active? and not @all
61
+ # Skip feature without modules.
62
+ next if feature.modules.empty?
63
+ info( "%s %-30s : %s" % [ feature.active_char, name, feature.description ] )
64
+ end
65
+
66
+ return 0
67
+ end
68
+
69
+ def show_feature( name )
70
+ feature = configuration.features[name]
71
+
72
+ if feature.nil?
73
+ error( "Unknown feature '%s'" % name )
74
+ return -1
75
+ end
76
+
77
+ info( "Name : %s" % feature.path )
78
+ info( "Modules" )
79
+ info( "====================================================" )
80
+ feature.modules.each do |mod|
81
+ next if mod.is_template?
82
+ info( "%s%s %-35s : %s" % [ mod.active_char, mod.state_char, mod.name, mod.description || "No description specified" ] )
83
+ end
84
+ return 0
85
+ end
86
+
87
+ end # class
88
+
89
+ end; end; end # module BuildTool::Commands::Modules
90
+
91
+
92
+
@@ -1,3 +1,7 @@
1
+ # -*- coding: UTF-8 -*-
2
+
3
+ require 'mj/tools/subprocess'
4
+
1
5
  require 'build-tool/application'
2
6
  require 'build-tool/commands'
3
7
 
@@ -27,7 +31,9 @@ def applicable?
27
31
  end
28
32
 
29
33
  def initialize_options
30
- @options.banner = "Usage: #{Pathname.new($0).basename} #{self.fullname} MODULES..."
34
+ options.banner = "Usage: #{self.fullname} [OPTIONS]... MODULES..."
35
+ options.separator( "" )
36
+ options.separator( "Options" )
31
37
  super
32
38
  end
33
39
 
@@ -35,7 +41,7 @@ def is_module_ready?( mod )
35
41
  isready = true
36
42
  isready &= mod.ready_for_fetch
37
43
  if isready && !mod.vcs.fetching_supported?
38
- logger.warn "#{mod.name}: fetching not supported by #{mod.vcs.name} -> implicit rebase."
44
+ warn( "#{mod.name}: fetching not supported by #{mod.vcs.name} -> implicit rebase." )
39
45
  end
40
46
  return isready
41
47
  end
@@ -56,7 +62,7 @@ def teardown_command
56
62
 
57
63
  def prepare_module( mod )
58
64
  isready = true
59
- @update && isready &= mod.prepare_for_vcs_access
65
+ isready &= mod.prepare_for_fetch
60
66
  return isready
61
67
  end # prepare_module
62
68
 
@@ -1,3 +1,5 @@
1
+ # -*- coding: UTF-8 -*-
2
+
1
3
  require 'build-tool/application'
2
4
  require 'build-tool/commands'
3
5
 
@@ -33,7 +35,9 @@ def do_execute( args )
33
35
  end
34
36
 
35
37
  def initialize_options
36
- @options.banner = "Usage: #{Pathname.new($0).basename} #{self.fullname} [FILENAME]"
38
+ options.banner = "Usage: #{self.fullname} [OPTIONS]... [FILENAME]"
39
+ options.separator( "" )
40
+ options.separator( "Options" )
37
41
  super
38
42
  end
39
43
 
@@ -41,13 +45,13 @@ def print_file_list
41
45
  recipe = Application::instance.recipe
42
46
  files_dir = recipe.files_path
43
47
  if !files_dir.exist?
44
- logger.error "No files supplied with this recipe"
48
+ error( "No files supplied with this recipe" )
45
49
  return 0
46
50
  end
47
51
  Dir.new(files_dir).sort.each do |entry|
48
52
  next if entry == "."
49
53
  next if entry == ".."
50
- say entry
54
+ info( entry )
51
55
  end
52
56
  return 0
53
57
  end
@@ -56,12 +60,12 @@ def print_file( filename )
56
60
  recipe = Application::instance.recipe
57
61
  files_dir = recipe.files_path
58
62
  if !files_dir.exist?
59
- logger.error "No files supplied with this recipe"
63
+ error( "No files supplied with this recipe" )
60
64
  return 0
61
65
  end
62
66
  file = files_dir.join( filename )
63
67
  if !file.exist?
64
- logger.error "File '#{filename}' not found! Found those:"
68
+ error( "File '#{filename}' not found! Found those:" )
65
69
  print_file_list
66
70
  return -1
67
71
  end
@@ -1,3 +1,5 @@
1
+ # -*- coding: UTF-8 -*-
2
+
1
3
  require 'build-tool/commands'
2
4
 
3
5
  module BuildTool; module Commands;
@@ -11,10 +13,12 @@ class Gc < ModuleBasedCommand
11
13
  description "Remove old stuff"
12
14
  long_description [ "Invokes maintenance actions. The history db is purged from entries older",
13
15
  "than 10 days. If supplied do garbage collection for the modules too.",
14
- "What that means is subject to the modules. See with -vvvv."]
16
+ "What that means is subject to the modules. See with -vv --dry-run."]
15
17
 
16
18
  def initialize_options
17
- @options.banner = "Usage: #{Pathname.new($0).basename} #{self.fullname} [MODULE|GROUP]..."
19
+ options.banner = "Usage: #{self.fullname} [OPTIONS]... [MODULE|GROUP]..."
20
+ options.separator( "" )
21
+ options.separator( "Options" )
18
22
  super
19
23
  end
20
24
 
@@ -22,26 +26,55 @@ def applicable?
22
26
  BuildTool::Application.instance.has_recipe?
23
27
  end
24
28
 
29
+ # Make sure at least the log directories are cleaned up
25
30
  def do_execute( args )
26
- case args.length
31
+ cleanup_logdirectories()
27
32
 
28
- when 0
29
- # Nothing
30
- #
31
- else
32
- super
33
+ # Only call the base class if there we modules specified. We get an error else.
34
+ if args.length > 0
35
+ return super
33
36
  end
37
+ return 0
38
+ end
34
39
 
40
+ # Clean up the log directories.
41
+ def cleanup_logdirectories
42
+ logdir = configuration.log_directory
43
+
44
+ info( "Removing outdated log files( older than 10 days )." )
45
+ # FIRST STEP: Removing old command logs from db and log/ directory.
35
46
  BuildTool::History::CommandLog.older_than.each do |cmd|
36
47
  if cmd.logdir
37
- if $noop
38
- say "rm -rf #{cmd.logdir}"
39
- else
40
- logger.debug("Removing #{cmd.logdir}");
41
- FileUtils.rm_rf( cmd.logdir ) if File.exist?( cmd.logdir )
42
- end
48
+ verbose( " - Removing outdated log #{cmd.logdir}");
49
+ FileUtils.rm_rf( cmd.logdir, :noop => $noop ) if File.exist?( cmd.logdir )
50
+ end
51
+ cmd.destroy() if not $noop
52
+ end
53
+
54
+ # SECOND STEP: Remove old command logs from log/ directory that have no associated
55
+ # entry in the database
56
+ info( "Removing orphaned log directories" )
57
+ logdir.children().sort().each do |abspath|
58
+ next if abspath.basename().to_s == 'latest'
59
+ # Check if it is in the db
60
+ cl = BuildTool::History::CommandLog.where( :logdir => abspath.to_s )
61
+ if cl.count == 0
62
+ verbose( ' - Removing %s' % abspath.to_s )
63
+ FileUtils.rm_r( abspath, :noop => $noop )
64
+ else
65
+ debug( ' - Keeping %s' % abspath.to_s )
66
+ end
67
+ end
68
+
69
+ # THIRD STEP: Remove old command logs from database that have no associated directory
70
+ # in log/
71
+ info( "Removing orphaned database entries." )
72
+ BuildTool::History::CommandLog.all( :order => :id ).each do |cl|
73
+ abspath = Pathname.new( cl.logdir )
74
+ if not abspath.exist?
75
+ verbose( ' - Removing orphaned db entry %d' % cl.id )
76
+ cl.destroy() if not $noop
43
77
  end
44
- cmd.destroy
45
78
  end
46
79
  return 0
47
80
  end
@@ -1,3 +1,5 @@
1
+ # -*- coding: UTF-8 -*-
2
+
1
3
  require 'build-tool/commands'
2
4
 
3
5
  require 'ansi'
@@ -10,8 +12,6 @@ module BuildTool; module Commands;
10
12
  #
11
13
  class History < Standard
12
14
 
13
- include ANSI::Code
14
-
15
15
  name "history"
16
16
  description "show command history"
17
17
  long_description [ "Query the command history",
@@ -21,9 +21,10 @@ class History < Standard
21
21
  " MODULE: Show the last three commands on MODULE" ]
22
22
 
23
23
  def initialize_options
24
- @options.banner = "Usage: #{Pathname.new($0).basename} #{self.fullname} [NUMBER|+NUMBER|MODULE]"
24
+ options.banner = "Usage: #{self.fullname} [OPTIONS]... [NUMBER|+NUMBER|MODULE]"
25
+ options.separator( "" )
26
+ options.separator( "Options" )
25
27
 
26
- @options.separator "Options:"
27
28
  # Show detailed history. Add start time, duration and success/failure
28
29
  @long = false
29
30
  options.on( "-l", "--long", "Use long list format." ) { |t|
@@ -32,8 +33,12 @@ def initialize_options
32
33
  super
33
34
 
34
35
  @lines = nil
35
- options.on( "-n", "--number [COUNT]", "Number of lines to show." ) { |t|
36
- @lines = t.to_i
36
+ options.on( "-n", "--number COUNT", "Number of lines to show." ) { |n|
37
+ if not /^[0-9]+$/.match( n )
38
+ raise OptionParser::ParseError.new( 'value "%s" is not a number' % n )
39
+ end
40
+
41
+ @lines = n.to_i()
37
42
  }
38
43
  super
39
44
  end
@@ -62,9 +67,9 @@ def do_execute( args )
62
67
 
63
68
  def show_command( cmd )
64
69
  if @long
65
- say " %04d %s # %s [%s]" % [ cmd.id, cmd.started_at.strftime("%x %X"), cmd.command, cmd.state_str ]
70
+ info( " %04d %s # %s [%s]" % [ cmd.id, cmd.started_at.strftime("%x %X"), cmd.command, cmd.state_str ] )
66
71
  else
67
- say " %04d %s [%s]" % [ cmd.id, cmd.command, cmd.state_str ]
72
+ info( " %04d %s [%s]" % [ cmd.id, cmd.command, cmd.state_str ] )
68
73
  end
69
74
  end
70
75
 
@@ -87,12 +92,12 @@ def show_module_history( modname )
87
92
  show_command( cmd )
88
93
 
89
94
  last_module=""
90
- cmd.module_logs_dataset.filter( :module => mod.name ).each do |e|
95
+ cmd.module_logs.where( :module => mod.name ).each do |e|
91
96
  if e.module != last_module
92
- say blue { "\t#{e.module}" }
97
+ info( blue { "\t#{e.module}" } )
93
98
  last_module = e.module
94
99
  end
95
- say "\t\t %s %s (%s) [%s]" % [ e.duration, e.event, e.logfile, e.state_str ]
100
+ info( "\t\t %s %s (%s) [%s]" % [ e.duration, e.event, e.logfile, e.state_str ] )
96
101
  end
97
102
  end
98
103
  return 0
@@ -100,12 +105,12 @@ def show_module_history( modname )
100
105
 
101
106
  def show_detailed_command_history( id )
102
107
  if id[0,1] == '+'
103
- cmd = BuildTool::History::CommandLog.most_recent( id.to_i )
108
+ cmd = BuildTool::History::CommandLog.most_recent( id )
104
109
  return 0 if cmd.nil?
105
110
  else
106
- cmd = BuildTool::History::CommandLog[id.to_i]
111
+ cmd = BuildTool::History::CommandLog.find( id )
107
112
  if cmd.nil?
108
- logger.error( "No entry with id #{id.to_i} found in history!")
113
+ error( "No entry with id #{id.to_i} found in history!")
109
114
  return -1
110
115
  end
111
116
  end
@@ -114,10 +119,10 @@ def show_detailed_command_history( id )
114
119
  last_module=""
115
120
  cmd.module_logs.each do |e|
116
121
  if e.module != last_module
117
- say blue { "\t#{e.module}" }
122
+ info( blue { "\t#{e.module}" } )
118
123
  last_module = e.module
119
124
  end
120
- say "\t\t %s %s (%s) [%s]" % [ e.duration, e.event, e.logfile, e.state_str ]
125
+ info( "\t\t %s %s (%s) [%s]" % [ e.duration, e.event, e.logfile, e.state_str ] )
121
126
  end
122
127
 
123
128
  return 0
@@ -1,3 +1,5 @@
1
+ # -*- coding: UTF-8 -*-
2
+
1
3
  require 'build-tool/commands'
2
4
 
3
5
  module BuildTool; module Commands;
@@ -12,7 +14,9 @@ class Info < Standard
12
14
  long_description [ "Show information about the currently used recipe" ]
13
15
 
14
16
  def initialize_options
15
- @options.banner = "Usage: #{Pathname.new($0).basename} #{self.fullname}"
17
+ options.banner = "Usage: #{self.fullname} [OPTIONS]..."
18
+ options.separator( "" )
19
+ options.separator( "Options" )
16
20
  super
17
21
  end
18
22
 
@@ -23,21 +27,20 @@ def applicable?
23
27
  def do_execute( args )
24
28
  if args.length != 0
25
29
  # *TODO* print better message
26
- logger.warn "Arguments ignored."
30
+ warn( "Arguments ignored." )
27
31
  end
28
32
 
29
33
  recipe = configuration.recipe
30
- say "Recipe"
31
- say "------"
32
- say "Name: #{recipe.name}"
33
- say "Short: #{recipe.short_description}"
34
- say "Long: #{recipe.long_description}"
35
- say "Full Path: #{recipe.global_config_file_path('recipe')}"
36
- say ""
37
- say "Configuration"
38
- say "-------------"
39
- say "Settings: #{ Application::instance.local_settings_file_path }"
40
- say "Overrides: #{ recipe.local_config_file_path( 'recipe' ) }"
34
+ info( "Recipe" )
35
+ info( "------" )
36
+ info( "Name: #{recipe.name}" )
37
+ info( "Short: #{recipe.short_description}" )
38
+ info( "Long: #{recipe.long_description}" )
39
+ info( "Full Path: #{recipe.global_config_file_path('recipe')}" )
40
+ info( "" )
41
+ info( "Configuration" )
42
+ info( "-------------" )
43
+ info( "Overrides: #{ recipe.local_config_file_path( 'recipe' ) }" )
41
44
 
42
45
  return 0
43
46
  end