build-tool 0.5.5 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,4 +1,4 @@
1
- == 0.5.5 ==
1
+ == 0.5.6 ==
2
2
 
3
3
  - Features
4
4
  - None
@@ -14,6 +14,10 @@
14
14
  git "server" "path/to"
15
15
  git "full/url"
16
16
 
17
+ == 0.5.5 ==
18
+
19
+ Release had problems. Skip it.
20
+
17
21
  == 0.5.4 ==
18
22
 
19
23
  - Features
data/lib/build-tool.rb CHANGED
@@ -2,6 +2,6 @@
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module BuildTool
5
- VERSION = '0.5.5'
5
+ VERSION = '0.5.6'
6
6
  end
7
7
 
@@ -154,6 +154,27 @@ def prepend( var, value )
154
154
  end
155
155
  end
156
156
 
157
+ # This method checks if the build-system is prepared for installation. Do not check if the
158
+ # module is configured, this will be done by Module. Only check stuff that is outside of
159
+ # the scope of build-tool.
160
+ def prepare_for_installation
161
+ return check_install_prefix
162
+ end
163
+
164
+ # Check that the installation prefix exists and is writable
165
+ def check_install_prefix
166
+ prefix = @module.install_prefix_required
167
+ if !prefix.exist? or !prefix.writable?
168
+ begin
169
+ FileUtils.mkdir_p prefix.to_s
170
+ rescue Errno::EACCES => e
171
+ logger.error "#{name}: The directory #{prefix.to_s} is not writable! Installation will fail!"
172
+ return false
173
+ end
174
+ end
175
+ return true
176
+ end
177
+
157
178
  def install_prefix
158
179
  return @module.install_prefix_required if @module
159
180
  raise ConfigurationError, "No module set for build-system"
@@ -37,6 +37,11 @@ def reconfigure()
37
37
  0
38
38
  end
39
39
 
40
+ # We have no buildsystem so we need no install prefix
41
+ def check_install_prefix
42
+ true
43
+ end
44
+
40
45
  # Execute a cmake command in the context of the build directory
41
46
  def cmake( command, wd = build_directory )
42
47
  0
@@ -344,13 +344,19 @@ def visit_GitRemoteUrlNode( node )
344
344
  end
345
345
 
346
346
  def visit_GitRemotePushNode( node )
347
- @remote.push_server = configuration.server( node.values[0] )
348
- if @remote.push_server.nil?
349
- raise ConfigurationError, "Unknown server #{node.values[0]} configured."
347
+ if node.values.length == 2
348
+ @remote.push_server = configuration.server( node.values[0] )
349
+ if @remote.push_server.nil?
350
+ raise ConfigurationError, "Unknown server #{node.values[0]} configured."
351
+ end
352
+ @remote.push_path = node.values[1]
353
+ else
354
+ @remote.push_server = BuildTool::Server.new( "unnamed" )
355
+ @remote.push_server.host = node.values[0]
350
356
  end
351
- @remote.push_path = node.values[1]
352
357
  end
353
358
 
359
+
354
360
  end # class GitRemoteDeclarationNodeVisitor
355
361
 
356
362
 
@@ -418,7 +418,7 @@ def complete_modules( name, include_templates = false )
418
418
 
419
419
  # Raise an error if the result should be unique but is not.
420
420
  if should_be_unique and res.size > 1
421
- raise UsageError, "#{name} is ambiguos #{res}. Please be more specific."
421
+ raise UsageError, "#{name} is ambiguous (#{res.map { |m| m.name }.join( ', ' ) })."
422
422
  end
423
423
 
424
424
  # Give a warning if all modules where
@@ -34,7 +34,7 @@ def initialize_options
34
34
  def is_module_ready?( mod )
35
35
  isready = true
36
36
  isready &= mod.ready_for_fetch
37
- if !mod.vcs.fetching_supported?
37
+ if isready && !mod.vcs.fetching_supported?
38
38
  logger.warn "#{mod.name}: fetching not supported by #{mod.vcs.name} -> implicit rebase."
39
39
  end
40
40
  return isready
@@ -41,10 +41,10 @@ def print_file_list
41
41
  recipe = Application::instance.recipe
42
42
  files_dir = recipe.files_path
43
43
  if !files_dir.exist?
44
- say "No files supplied with this recipe"
44
+ logger.error "No files supplied with this recipe"
45
45
  return 0
46
46
  end
47
- Dir.new(files_dir).each do |entry|
47
+ Dir.new(files_dir).sort.each do |entry|
48
48
  next if entry == "."
49
49
  next if entry == ".."
50
50
  say entry
@@ -56,12 +56,13 @@ def print_file( filename )
56
56
  recipe = Application::instance.recipe
57
57
  files_dir = recipe.files_path
58
58
  if !files_dir.exist?
59
- say "No files supplied with this recipe"
59
+ logger.error "No files supplied with this recipe"
60
60
  return 0
61
61
  end
62
62
  file = files_dir.join( filename )
63
- if !files_dir.exist?
64
- say "That file does not exist"
63
+ if !file.exist?
64
+ logger.error "File '#{filename}' not found! Found those:"
65
+ print_file_list
65
66
  return -1
66
67
  end
67
68
 
@@ -28,7 +28,11 @@ def log_directory
28
28
  raise BuildTool::ConfigurationError, "No log directory configured"
29
29
  end
30
30
  def log_directory=( path )
31
- @log_directory = Pathname.new( File.expand_path( path, "~" ) )
31
+ path = Pathname.new( path.sub( /\$HOME/, '~' ) )
32
+ if path.to_s[0] != '~' and path.relative?
33
+ raise ConfigurationError, "Log directory '#{path}' is relative!"
34
+ end
35
+ @log_directory = path.expand_path
32
36
  end
33
37
 
34
38
  def environment( name )
@@ -60,7 +60,11 @@ def build_directory
60
60
 
61
61
  def build_prefix=( path )
62
62
  if path
63
- @build_prefix = Pathname.new( File.expand_path( path ) )
63
+ path = Pathname.new( path.sub( /\$HOME/, '~' ) )
64
+ if path.to_s[0] != '~' and path.relative?
65
+ raise ConfigurationError, "Build-prefix '#{path}' is relative!"
66
+ end
67
+ @build_prefix = path.expand_path
64
68
  else
65
69
  @build_prefix = nil
66
70
  end
@@ -151,7 +155,11 @@ def gc
151
155
  # Installation prefix
152
156
  def install_prefix=( path )
153
157
  if path
154
- @install_prefix = Pathname.new( File.expand_path( path.to_s ) )
158
+ path = Pathname.new( path.sub( /\$HOME/, '~' ) )
159
+ if path.to_s[0] != '~' and path.relative?
160
+ raise ConfigurationError, "Install-prefix '#{path}' is relative!"
161
+ end
162
+ @install_prefix = path.expand_path
155
163
  else
156
164
  @install_prefix = nil
157
165
  end
@@ -345,16 +353,7 @@ def ready_for_rebase
345
353
 
346
354
 
347
355
  def prepare_for_installation
348
- prefix = install_prefix_required
349
- if !prefix.exist? or !prefix.writable?
350
- begin
351
- FileUtils.mkdir_p prefix.to_s
352
- rescue Errno::EACCES => e
353
- logger.error "#{name}: The directory #{prefix.to_s} is not writable! Installation will fail!"
354
- return false
355
- end
356
- end
357
- return true
356
+ return build_system_required.prepare_for_installation
358
357
  end
359
358
 
360
359
  def to_s
@@ -64,6 +64,20 @@ def initialize( *args )
64
64
  super( *args )
65
65
  end
66
66
 
67
+ class << self
68
+
69
+ git_svn_available = nil
70
+
71
+ # Is the git executable available?
72
+ def git_svn_available
73
+ return @git_svn_available unless @git_svn_available.nil?
74
+ %x( git svn --help 2>&1 )
75
+ @git_svn_available = $?.success?
76
+ return @git_svn_available
77
+ end
78
+
79
+ end
80
+
67
81
  #
68
82
  ### ATTRIBUTES
69
83
  #
@@ -150,7 +164,10 @@ def rebase
150
164
  end
151
165
 
152
166
  def ready_for_fetch
153
- git.ready_for_fetch
167
+ if not GitSvn.git_svn_available
168
+ logger.info( "#{config.module.name}: Calling `git svn` failed!" )
169
+ end
170
+ return GitSvn.git_svn_available && git.ready_for_fetch
154
171
  end
155
172
 
156
173
  def ready_for_rebase
@@ -140,6 +140,20 @@ def initialize( config )
140
140
  @vcs = nil
141
141
  end
142
142
 
143
+ class << self
144
+
145
+ git_available = nil
146
+
147
+ # Is the git executable available?
148
+ def git_available
149
+ return @git_available unless @git_available.nil?
150
+ %x( git --version 2>&1 )
151
+ @git_available = $?.success?
152
+ return @git_available
153
+ end
154
+
155
+ end
156
+
143
157
  #
144
158
  ### ATTRIBUTES
145
159
  #
@@ -261,6 +275,13 @@ def ready_for_access
261
275
  end
262
276
  end
263
277
 
278
+ def ready_for_fetch
279
+ if not Git.git_available
280
+ logger.info( "#{config.module.name}: Calling `git` failed!" )
281
+ end
282
+ return Git.git_available
283
+ end
284
+
264
285
  # Check if the module is ready for a rebase.
265
286
  def ready_for_rebase
266
287
 
@@ -61,6 +61,21 @@ class SvnError < BuildTool::Error; end
61
61
  # super( *args )
62
62
  # end
63
63
 
64
+ class << self
65
+
66
+ svn_available = nil
67
+
68
+ # Is the git executable available?
69
+ def svn_available
70
+ return @svn_available unless @svn_available.nil?
71
+ %x( svn --version 2>&1 )
72
+ @svn_available = $?.success?
73
+ return @svn_available
74
+ end
75
+
76
+ end
77
+
78
+
64
79
  #
65
80
  ### ATTRIBUTES
66
81
  #
@@ -107,6 +122,13 @@ def clone
107
122
  end
108
123
  end
109
124
 
125
+ def ready_for_fetch
126
+ if not Svn.svn_available
127
+ logger.info( "#{config.module.name}: Calling `svn` failed!" )
128
+ end
129
+ return Svn.svn_available
130
+ end
131
+
110
132
  def fetch()
111
133
  if !checkedout?
112
134
  clone
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: build-tool
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5
4
+ version: 0.5.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-04 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: logging
16
- requirement: &6489880 !ruby/object:Gem::Requirement
16
+ requirement: &6487260 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.4.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *6489880
24
+ version_requirements: *6487260
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: sequel
27
- requirement: &6489300 !ruby/object:Gem::Requirement
27
+ requirement: &6486640 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.18.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *6489300
35
+ version_requirements: *6486640
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sqlite3
38
- requirement: &6488560 !ruby/object:Gem::Requirement
38
+ requirement: &6486000 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.3.3
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *6488560
46
+ version_requirements: *6486000
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: ansi
49
- requirement: &6487940 !ruby/object:Gem::Requirement
49
+ requirement: &6485380 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.2.2
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *6487940
57
+ version_requirements: *6485380
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: grit
60
- requirement: &6487280 !ruby/object:Gem::Requirement
60
+ requirement: &6484800 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 2.4.1
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *6487280
68
+ version_requirements: *6484800
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: racc
71
- requirement: &6486660 !ruby/object:Gem::Requirement
71
+ requirement: &6484300 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 1.4.7
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *6486660
79
+ version_requirements: *6484300
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: hoe-debugging
82
- requirement: &6486100 !ruby/object:Gem::Requirement
82
+ requirement: &6483680 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 1.0.1
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *6486100
90
+ version_requirements: *6483680
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: hoe-doofus
93
- requirement: &6485500 !ruby/object:Gem::Requirement
93
+ requirement: &6483080 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 1.0.0
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *6485500
101
+ version_requirements: *6483080
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: hoe-git
104
- requirement: &6484900 !ruby/object:Gem::Requirement
104
+ requirement: &6467480 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: 1.3.0
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *6484900
112
+ version_requirements: *6467480
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: racc
115
- requirement: &6484260 !ruby/object:Gem::Requirement
115
+ requirement: &6467000 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 1.4.6
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *6484260
123
+ version_requirements: *6467000
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: rexical
126
- requirement: &6469180 !ruby/object:Gem::Requirement
126
+ requirement: &6466480 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 1.0.5
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *6469180
134
+ version_requirements: *6466480
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: hoe
137
- requirement: &6468740 !ruby/object:Gem::Requirement
137
+ requirement: &6465900 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,7 +142,7 @@ dependencies:
142
142
  version: '2.9'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *6468740
145
+ version_requirements: *6465900
146
146
  description: ! 'This project is inspired by kdesrc-build[http://kdesrc-build.kde.org/].
147
147
 
148
148