build-tool 0.1.4 → 0.2

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 (90) hide show
  1. data.tar.gz.sig +2 -3
  2. data/History.txt +29 -0
  3. data/Manifest.txt +39 -10
  4. data/README.txt +5 -8
  5. data/Rakefile +14 -6
  6. data/bin/build-tool +3 -35
  7. data/db/migrations/001_command_histories.rb +20 -0
  8. data/db/migrations/002_module_events.rb +24 -0
  9. data/db/migrations/003_command_histories_add_logfile.rb +19 -0
  10. data/lib/build-tool.rb +1 -1
  11. data/lib/build-tool/application.rb +103 -30
  12. data/lib/build-tool/build-system/autoconf.rb +69 -6
  13. data/lib/build-tool/build-system/base.rb +2 -25
  14. data/lib/build-tool/build-system/custom.rb +6 -19
  15. data/lib/build-tool/build-system/kdel10n.rb +39 -0
  16. data/lib/build-tool/build-system/none.rb +82 -0
  17. data/lib/build-tool/cfg/lexer.rb +133 -7
  18. data/lib/build-tool/cfg/lexer.rex +58 -6
  19. data/lib/build-tool/cfg/node.rb +13 -1
  20. data/lib/build-tool/cfg/parser.rb +519 -333
  21. data/lib/build-tool/cfg/parser.y +74 -11
  22. data/lib/build-tool/cfg/visitor.rb +182 -20
  23. data/lib/build-tool/command_actions.rb +202 -0
  24. data/lib/build-tool/commands.rb +193 -49
  25. data/lib/build-tool/commands/build.rb +13 -8
  26. data/lib/build-tool/commands/configure.rb +8 -3
  27. data/lib/build-tool/commands/environments.rb +4 -8
  28. data/lib/build-tool/commands/environments/list.rb +8 -0
  29. data/lib/build-tool/commands/fetch.rb +7 -2
  30. data/lib/build-tool/commands/gc.rb +53 -0
  31. data/lib/build-tool/commands/history.rb +111 -0
  32. data/lib/build-tool/commands/install.rb +6 -1
  33. data/lib/build-tool/commands/lsfeatures.rb +73 -0
  34. data/lib/build-tool/commands/modules.rb +3 -7
  35. data/lib/build-tool/commands/modules/info.rb +15 -6
  36. data/lib/build-tool/commands/modules/list.rb +10 -5
  37. data/lib/build-tool/commands/rebase.rb +6 -1
  38. data/lib/build-tool/commands/recipes.rb +3 -7
  39. data/lib/build-tool/configuration.rb +24 -1
  40. data/lib/build-tool/environment.rb +17 -3
  41. data/lib/build-tool/feature.rb +47 -0
  42. data/lib/build-tool/history.rb +173 -0
  43. data/lib/build-tool/module.rb +49 -90
  44. data/lib/build-tool/recipe.rb +5 -0
  45. data/lib/build-tool/vcs/archive.rb +140 -0
  46. data/lib/build-tool/vcs/base.rb +5 -5
  47. data/lib/build-tool/vcs/git-svn.rb +4 -0
  48. data/lib/build-tool/vcs/git.rb +4 -0
  49. data/lib/mj/logging.rb +11 -0
  50. data/recipes/{kdeqt4.6 → kde}/custom/qt/qtscriptgenerator/compile.sh +0 -0
  51. data/recipes/{kdeqt4.6 → kde}/custom/qt/qtscriptgenerator/configure.sh +0 -0
  52. data/recipes/{kdeqt4.6 → kde}/custom/qt/qtscriptgenerator/install.sh +0 -0
  53. data/recipes/kde/custom/scripting/pyqt4/compile.sh +10 -0
  54. data/recipes/kde/custom/scripting/pyqt4/configure.sh +14 -0
  55. data/recipes/kde/custom/scripting/pyqt4/install.sh +10 -0
  56. data/recipes/kde/custom/scripting/sip/compile.sh +10 -0
  57. data/recipes/kde/custom/scripting/sip/configure.sh +13 -0
  58. data/recipes/kde/custom/scripting/sip/install.sh +10 -0
  59. data/recipes/kde/files/xsession +8 -4
  60. data/recipes/kde/kde-bindings.recipe +22 -0
  61. data/recipes/kde/kde-core.recipe +104 -0
  62. data/recipes/kde/kde-devel.recipe +38 -0
  63. data/recipes/kde/kde-finance.recipe +17 -0
  64. data/recipes/kde/kde-graphics.recipe +27 -0
  65. data/recipes/kde/kde-kdevelop.recipe +116 -0
  66. data/recipes/kde/kde-l10n.recipe +14 -0
  67. data/recipes/kde/kde-multimedia.recipe +31 -0
  68. data/recipes/kde/kde-network.recipe +55 -0
  69. data/recipes/kde/kde-office.recipe +28 -0
  70. data/recipes/kde/kde-plasma.recipe +117 -0
  71. data/recipes/{kdeqt4.6/recipe → kde/kde-qt.recipe} +25 -57
  72. data/recipes/kde/kde-scripting.recipe +63 -0
  73. data/recipes/kde/kde-support.recipe +73 -0
  74. data/recipes/kde/kde-utils.recipe +22 -0
  75. data/recipes/kde/kde-webdev.recipe +41 -0
  76. data/recipes/kde/recipe +92 -532
  77. data/recipes/kde/recipe-local +58 -2
  78. data/recipes/kde/settings.yaml +17 -0
  79. data/recipes/kde43/recipe-local +58 -2
  80. data/test/test_configuration_parser.rb +76 -21
  81. data/test/test_feature.rb +34 -0
  82. data/test/test_history.rb +149 -0
  83. metadata +185 -30
  84. metadata.gz.sig +0 -0
  85. data/lib/build-tool/pluginbase.rb +0 -43
  86. data/recipes/kdeqt4.6/info.yaml +0 -7
  87. data/recipes/kdeqt4.6/recipe-local +0 -30
  88. data/recipes/kdeqt4.6/settings.yaml +0 -27
  89. data/tasks/rdoc.rake +0 -34
  90. data/test.rb +0 -28
@@ -12,12 +12,17 @@ module BuildTool; module Commands; module Modules
12
12
  cmdalias "lsmods"
13
13
 
14
14
  def initialize_options
15
+ @template = false
15
16
  @all = false
16
17
 
17
- options.on( "--all", "Include template modules" ) {
18
+ options.on( "--all", "Include inactive modules." ) {
18
19
  @all = true
19
20
  }
20
21
 
22
+ options.on( "--template", "Include template modules." ) {
23
+ @template = true
24
+ }
25
+
21
26
  super
22
27
 
23
28
  end
@@ -26,16 +31,16 @@ module BuildTool; module Commands; module Modules
26
31
  # *TODO* listing local and remote recipes
27
32
  if args.length == 0
28
33
  configuration.modules.each do |mod|
29
- if @all or not mod.is_template?
30
- say "%-30s : %s" % [ mod.name, mod.description ]
34
+ if @template or not mod.is_template?
35
+ say "%-30s : %s" % [ mod.name, mod.description ] if ( mod.active? || @all )
31
36
  end
32
37
  end
33
38
  else
34
39
  args.each do |arg|
35
- mods = complete_modules( arg, @all )
40
+ mods = complete_modules( arg, @template )
36
41
  next if !mods
37
42
  mods.each do |mod|
38
- say "%-30s : %s" % [ mod.name, mod.description ]
43
+ say "%-30s : %s" % [ mod.name, mod.description ] if ( mod.active? || @all )
39
44
  end
40
45
  end
41
46
  end
@@ -14,6 +14,11 @@ module BuildTool; module Commands;
14
14
  name "rebase"
15
15
  description "rebase local checkout against previously fetched remote changes."
16
16
 
17
+ # Log this command if $noop is not active
18
+ def log?
19
+ ! $noop
20
+ end
21
+
17
22
  def applicable?
18
23
  BuildTool::Application.instance.name != "build-tool"
19
24
  end
@@ -32,7 +37,7 @@ module BuildTool; module Commands;
32
37
 
33
38
  def do_execute_module( mod )
34
39
  if mod.checkedout?
35
- mod.rebase( @log_directory )
40
+ rebase( mod )
36
41
  else
37
42
  logger.info "Not checked out. Skipping"
38
43
  end
@@ -1,11 +1,11 @@
1
1
  require 'build-tool/commands'
2
2
 
3
- module BuildTool; module Commands; module Recipes
3
+ module BuildTool; module Commands;
4
4
 
5
5
  #
6
6
  # BuildCommand
7
7
  #
8
- class CLI < Commands::SubCommands
8
+ class RecipesCLI < Commands::SubCommands
9
9
 
10
10
  name "recipes"
11
11
  description "build recipe related commands"
@@ -24,9 +24,5 @@ module BuildTool; module Commands; module Recipes
24
24
 
25
25
  end # class CLI
26
26
 
27
- def self.create( *args )
28
- cmd = CLI.new( *args )
29
- end
30
-
31
- end; end; end # module BuildTool::Commands::Recipes
27
+ end; end # module BuildTool::Commands::RecipesCLI
32
28
 
@@ -1,11 +1,14 @@
1
1
  require 'build-tool/vcs/git'
2
2
  require 'build-tool/vcs/git-svn'
3
3
  require 'build-tool/vcs/svn'
4
+ require 'build-tool/vcs/archive'
4
5
 
5
6
  require 'build-tool/build-system/cmake'
6
7
  require 'build-tool/build-system/qt'
7
8
  require 'build-tool/build-system/autoconf'
8
9
  require 'build-tool/build-system/custom'
10
+ require 'build-tool/build-system/none'
11
+ require 'build-tool/build-system/kdel10n'
9
12
 
10
13
 
11
14
  module BuildTool
@@ -15,13 +18,15 @@ module BuildTool
15
18
  attr_reader :recipe
16
19
  attr_reader :modules
17
20
  attr_reader :environments
21
+ attr_reader :features
22
+ attr_accessor :active_feature
18
23
 
19
24
  def log_directory
20
25
  return @log_directory if @log_directory
21
26
  raise BuildTool::ConfigurationError, "No log directory configured"
22
27
  end
23
28
  def log_directory=( path )
24
- @log_directory = File.expand_path( path, "~" );
29
+ @log_directory = Pathname.new( File.expand_path( path, "~" ) )
25
30
  end
26
31
 
27
32
  def environment( name )
@@ -32,6 +37,14 @@ module BuildTool
32
37
  @environments[env.name] = env
33
38
  end
34
39
 
40
+ def feature( name )
41
+ @features[name]
42
+ end
43
+
44
+ def add_feature( feature )
45
+ @features[feature.path] = feature
46
+ end
47
+
35
48
  def module( name )
36
49
  @module[name]
37
50
  end
@@ -75,6 +88,8 @@ module BuildTool
75
88
  @build_system = {}
76
89
  @repository = {}
77
90
  @sshkey = {}
91
+ @active_feature = nil
92
+ @features = {}
78
93
  end
79
94
 
80
95
  def vcs( name )
@@ -85,6 +100,8 @@ module BuildTool
85
100
  return BuildTool::VCS::GitConfiguration.new
86
101
  when "svn"
87
102
  return BuildTool::VCS::SvnConfiguration.new
103
+ when "archive"
104
+ return BuildTool::VCS::ArchiveConfiguration.new
88
105
  else
89
106
  raise StandardError, "Unknown Version Control System #{name}"
90
107
  end
@@ -93,14 +110,20 @@ module BuildTool
93
110
  def build_system( name )
94
111
  return @build_system[name] if @build_system[name]
95
112
  case name
113
+ when "none"
114
+ return BuildTool::BuildSystem::None.new
96
115
  when "cmake"
97
116
  return BuildTool::BuildSystem::CMake.new
117
+ when "kdel10n"
118
+ return BuildTool::BuildSystem::KdeL10n.new
98
119
  when "qt"
99
120
  return BuildTool::BuildSystem::Qt.new
100
121
  when "qmake"
101
122
  return BuildTool::BuildSystem::QMake.new
102
123
  when "custom"
103
124
  return BuildTool::BuildSystem::Custom.new
125
+ when "autoconf"
126
+ return BuildTool::BuildSystem::AutoConf.new
104
127
  else
105
128
  raise StandardError, "Unknown Version Control System #{name}"
106
129
  end
@@ -15,14 +15,26 @@ module BuildTool
15
15
  # Parent environment
16
16
  attr_accessor :parent
17
17
 
18
+ attr_accessor :feature
19
+
18
20
  # Create a environment object
19
21
  def initialize( name )
20
22
  raise StandardError.new "Environment.name has to be set" if name.nil?
21
23
  @name = name
22
24
  @vars = Hash.new
23
25
  @parent = nil
26
+ @feature = nil
27
+ end
28
+
29
+ def active?
30
+ if @feature.nil?
31
+ true
32
+ else
33
+ @feature.active?
34
+ end
24
35
  end
25
36
 
37
+
26
38
  # Set a environment variable
27
39
  def append( name, value )
28
40
  if @vars.has_key?(name.to_s) and !@vars[name.to_s].empty?
@@ -33,7 +45,9 @@ module BuildTool
33
45
  end
34
46
 
35
47
  # Execute command in a shell with the environment set.
36
- def execute( command, wd = nil )
48
+ def execute( command, wd = nil, env = nil )
49
+ values = self.values
50
+ values = values.merge( env ) if env
37
51
  rc = self.class.execute( command.to_s, wd, values )
38
52
  if rc != 0
39
53
  raise StandardError, "#{command.to_s} failed with error code #{rc}";
@@ -96,8 +110,8 @@ module BuildTool
96
110
  if @parent
97
111
  parentval = @parent[name]
98
112
  end
99
- # If we don't know the var return the parents value
100
- if !@vars.has_key?( name.to_s )
113
+ # If we don't know the var or the env is not active return the parents value
114
+ if !@vars.has_key?( name.to_s ) or !active?
101
115
  return parentval
102
116
  end
103
117
  if parentval.empty?
@@ -0,0 +1,47 @@
1
+ module BuildTool
2
+
3
+ class Feature
4
+
5
+ attr_writer :active
6
+ attr_accessor :description
7
+ attr_accessor :long_description
8
+ attr_reader :modules
9
+ attr_reader :environments
10
+
11
+ def initialize( name = nil, parent = nil, active = true )
12
+ @name = name
13
+ @active = active
14
+ @parent = parent
15
+ @description = nil
16
+ @long_description = nil
17
+ @modules = []
18
+ @environments = []
19
+ end
20
+
21
+ def active?
22
+ if @parent.nil?
23
+ @active
24
+ else
25
+ @parent.active? && @active
26
+ end
27
+ end
28
+
29
+ def name
30
+ @name
31
+ end
32
+
33
+ def path
34
+ if @parent.nil?
35
+ @name
36
+ else
37
+ "%s/%s" % [ @parent.name, @name ]
38
+ end
39
+ end
40
+
41
+ def parent
42
+ @parent
43
+ end
44
+
45
+ end # class Feature
46
+
47
+ end # module BuildTool
@@ -0,0 +1,173 @@
1
+ require 'sequel'
2
+
3
+ module BuildTool
4
+
5
+ #
6
+ # Provide method to add and retrieve entries from the history
7
+ #
8
+ module History
9
+
10
+ module StateHelper
11
+
12
+ # Needed for both Module and Command History
13
+ STARTED = 0
14
+ CANCELED_BY_USER = 1
15
+ FINISHED_SUCCESSFUL = 2
16
+ FINISHED_WITH_ERRORS = 3
17
+
18
+ def state_str
19
+ case self.state
20
+ when STARTED
21
+ "STARTED"
22
+ when CANCELED_BY_USER
23
+ "CANCELED"
24
+ when FINISHED_SUCCESSFUL
25
+ "SUCCESS"
26
+ when FINISHED_WITH_ERRORS
27
+ "ERRORS"
28
+ else
29
+ "#{self.state.to_s}?"
30
+ end
31
+ end
32
+
33
+ module ClassMethods
34
+ end
35
+
36
+ def self.included( klass )
37
+ klass.extend ClassMethods
38
+ end
39
+
40
+ end
41
+
42
+ # Represents a log entry for a command.
43
+ class CommandLog < Sequel::Model( :command_logs )
44
+
45
+ include StateHelper
46
+
47
+ # A command can have many module events
48
+ one_to_many :module_logs, :order => :id
49
+
50
+ def duration
51
+ if self.finished_at
52
+ dur = self.finished_at - self.started_at
53
+ "%02d:%02d" % [ dur.to_i / 60, (dur% 60 ).to_i ]
54
+ else
55
+ "-----"
56
+ end
57
+ end
58
+
59
+ # Call this if the command is finished. [:finished] will be set to Time.now,
60
+ # [:state] to the given value and the object is saved.
61
+ def finished( state )
62
+ self.finished_at = Time.now
63
+ self.state = state
64
+ save
65
+ end
66
+
67
+ # Call this if the command is started. [:started] will be set to Time.now, [:state]
68
+ # to STARTED and the object is saved.
69
+ def started
70
+ self.started_at = Time.now
71
+ save
72
+ end
73
+
74
+ # Sequel Hook
75
+ #
76
+ # Make sure a finished command has one of the accepted finished states.
77
+ def before_update
78
+ super
79
+ if !self.finished_at.nil?
80
+ raise StandardError, "Wrong state for finished Command" if ! [ FINISHED_SUCCESSFUL, FINISHED_WITH_ERRORS, CANCELED_BY_USER ].include? self.state
81
+ end
82
+ end
83
+
84
+ # Class Methods
85
+ class << self
86
+
87
+ # Loads the most recents entry from the database
88
+ def most_recent( offset = nil )
89
+ if offset.nil?
90
+ return where( "id = (SELECT MAX(id) FROM #{table_name})" ).first
91
+ else
92
+ return order( :id.desc ).limit( 1, offset ).first
93
+ end
94
+ end # def most_recent
95
+
96
+ # Get the last :count issued commands
97
+ #
98
+ # @param [Integer] count Number of commands to return
99
+ # @return [Array] List containing the last count issued commands
100
+ def last( count = 50 )
101
+ order(:id.desc).limit(count).all
102
+ end
103
+
104
+ # Get the last :count command entries containing module :modname.
105
+ def last_by_module( modname, count = 3 )
106
+ where( 'id in ( select distinct command_log_id from module_logs where module = ? )', modname ).order( :id.desc ).first( count );
107
+ end
108
+
109
+ # Get all commands older than :days
110
+ def older_than
111
+ where( 'finished_at < ?', Date.today - 10 )
112
+ end
113
+
114
+
115
+ end # ClassMethods
116
+
117
+ end
118
+
119
+ # Represents a module event.
120
+ #
121
+ # A module event is updating, compiling etc. a module.
122
+ class ModuleLog < Sequel::Model( :module_logs )
123
+
124
+ include StateHelper
125
+
126
+ # A module event belongs to a command
127
+ many_to_one :command_log
128
+
129
+ def duration
130
+ if self.finished_at
131
+ dur = self.finished_at - self.started_at
132
+ "%02d:%02d" % [ dur.to_i / 60, (dur% 60 ).to_i ]
133
+ else
134
+ "-----"
135
+ end
136
+ end
137
+
138
+ # Call this if the command is finished. [:finished] will be set to Time.now,
139
+ # [:state] to the given value and the object is saved.
140
+ def finished( state )
141
+ self.finished_at = Time.now
142
+ self.state = state
143
+ save
144
+ end
145
+
146
+ # Call this when the command is started. [:started] will be set to Time.now and
147
+ # the object is saved.
148
+ def started
149
+ self.started_at = Time.now
150
+ save
151
+ end
152
+
153
+ # Sequel Hook
154
+ #
155
+ # Make sure a finished command has one of the accepted finished states.
156
+ def before_update
157
+ super
158
+ if !self.finished_at.nil?
159
+ raise StandardError, "Wrong state for finished Command" if ! [ FINISHED_SUCCESSFUL, FINISHED_WITH_ERRORS, CANCELED_BY_USER ].include? self.state
160
+ end
161
+ end
162
+
163
+ class << self
164
+
165
+ end # class self
166
+
167
+ end
168
+
169
+ end # module BuildTool::History
170
+
171
+ end # module BuildTool
172
+
173
+
@@ -1,7 +1,5 @@
1
- # require 'gbs_signal_slot'
2
- require 'mj/tools/ssh'
3
1
  require 'ftools'
4
-
2
+ require 'mj/tools/ssh'
5
3
 
6
4
  module BuildTool
7
5
 
@@ -15,6 +13,7 @@ module BuildTool
15
13
  if name.nil?
16
14
  raise StandardError, "Module name is required!"
17
15
  end
16
+ @active = nil
18
17
  @name = name
19
18
  @parent = parent
20
19
  @local_path = nil
@@ -26,11 +25,27 @@ module BuildTool
26
25
  @install_prefix = nil
27
26
  @is_template = false
28
27
  @vcs_configuration = nil
28
+ @feature = nil
29
29
  end
30
30
 
31
31
  #
32
32
  ### ATTRIBUTES
33
33
  #
34
+ attr_writer :feature
35
+ attr_writer :active
36
+
37
+ def active?
38
+ # If the module is activated that wins
39
+ if @active.nil?
40
+ if @feature.nil?
41
+ return true
42
+ else
43
+ return @feature.active?
44
+ end
45
+ else
46
+ return @active
47
+ end
48
+ end
34
49
 
35
50
  # not inherited
36
51
  def build_directory
@@ -88,7 +103,11 @@ module BuildTool
88
103
  end
89
104
 
90
105
  def configured?
91
- build_system_required.configured?
106
+ if build_system
107
+ return build_system.configured?
108
+ else
109
+ return false
110
+ end
92
111
  end
93
112
 
94
113
  def description
@@ -113,6 +132,11 @@ module BuildTool
113
132
  raise ConfigurationError, "No environment configured for #{name}!"
114
133
  end
115
134
 
135
+ # Garbage collect
136
+ def gc
137
+ vcs.gc
138
+ end
139
+
116
140
  # Installation prefix
117
141
  def install_prefix=( path )
118
142
  if path
@@ -227,85 +251,49 @@ module BuildTool
227
251
  #
228
252
  ### ACTIONS
229
253
  #
230
- def clean( logdir, remove_build_directory = false )
231
- while_logging_to logdir, '10_clean' do
232
- if remove_build_directory
233
- logger.info "Removing build directory."
234
- build_system_required.remove_build_directory
235
- else
236
- logger.info "Cleaning build directory."
237
- build_system_required.make( "clean" )
238
- end
254
+ def clean( remove_build_directory = false )
255
+ if remove_build_directory
256
+ logger.info "Removing build directory."
257
+ build_system_required.remove_build_directory
258
+ else
259
+ logger.info "Cleaning build directory."
260
+ build_system_required.make( "clean" )
239
261
  end
240
262
  end
241
263
 
242
264
 
243
265
  # Clone the repository.
244
- def clone( logdir )
245
- while_logging_to logdir, '20_fetch' do
246
- logger.info "Creating local checkout."
247
- vcs_required.clone
248
- end
266
+ def clone
267
+ vcs_required.clone
249
268
  end
250
269
 
251
270
  # Fetch changes from the remote repository. Do not change the local
252
271
  # checkout.
253
- def fetch( logdir )
254
- if !vcs_required.fetching_supported?
255
- logger.info "Fetching/Rebase not supported by vcs #{vcs.name}. Doing it in one step."
256
- end
257
- while_logging_to logdir, '20_fetch' do
258
- logger.info "Fetching remote changes."
259
- vcs.fetch
260
- end
272
+ def fetch
273
+ vcs_required.fetch
261
274
  end
262
275
 
263
276
  # Update the local changes with remote changes. Do not fetch changes
264
277
  # from the remote repository.
265
- def rebase( logdir )
266
- if !vcs_required.fetching_supported?
267
- logger.info "Fetching not supported by vcs #{vcs.name}."
268
- return
269
- end
270
- while_logging_to logdir, '30_rebase' do
271
- logger.info "Rebasing against remote changes."
272
- vcs.rebase
273
- end
278
+ def rebase
279
+ vcs_required.rebase
274
280
  end
275
281
 
276
- def configure( logdir )
277
- while_logging_to logdir, '40_configure' do
278
- logger.info "Configuring."
279
- if !$noop and !vcs_required.checkedout?
280
- raise ConfigurationError, "Failed to configure: Module is not checked out."
281
- end
282
- build_system_required.configure
283
- end
282
+ def configure
283
+ build_system_required.configure
284
284
  end
285
285
 
286
- def reconfigure( logdir )
287
- while_logging_to logdir, '40_configure' do
288
- logger.info "Recreating configuration."
289
- if !$noop and !vcs_required.checkedout?
290
- raise ConfigurationError, "Module is not checked out. Enable updating."
291
- end
292
- build_system_required.reconfigure
293
- end
286
+ def reconfigure
287
+ build_system_required.reconfigure
294
288
  end
295
289
 
296
290
  # Call make
297
- def make( logdir, target = nil )
298
- while_logging_to logdir, '50_build' do
299
- logger.info "Building module."
300
- build_system_required.make( target )
301
- end
291
+ def make( target = nil )
292
+ build_system_required.make( target )
302
293
  end
303
294
 
304
- def install( logdir, fast = false )
305
- while_logging_to logdir, '60_install' do
306
- logger.info "Installing module."
307
- build_system_required.install( fast )
308
- end
295
+ def install( fast = false )
296
+ build_system_required.install( fast )
309
297
  end
310
298
 
311
299
  # Check if an ssh-key is required and active it if necessary
@@ -331,35 +319,6 @@ module BuildTool
331
319
  return true
332
320
  end
333
321
 
334
- #########
335
- protected
336
- #########
337
-
338
- def while_logging_to( logdir, fname, level = :trace, &block )
339
- dirname = "#{logdir}/#{name}"
340
- FileUtils.mkdir_p( dirname )
341
- Logging.logger['root'].add_appenders(
342
- Logging.appenders.file(
343
- fname,
344
- :filename => dirname + '/' + fname,
345
- :layout => Logging::Layouts::Pattern.new( :pattern => '%m\n' ),
346
- :level => level ))
347
-
348
- begin
349
- yield
350
- rescue Interrupt => e
351
- logger.error "User Interrupt!"
352
- raise e
353
- rescue Exception => e
354
- logger.error "#{e.class}:#{e.message}"
355
- got_exception = true
356
- raise e
357
- ensure
358
- Logging.logger['root'].remove_appenders( fname )
359
- logger.info("More information in #{dirname}/#{fname}") if got_exception
360
- end
361
- end
362
-
363
322
  end # Module
364
323
 
365
324