build-tool 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +2 -1
- data/History.txt +10 -0
- data/README.txt +6 -8
- data/Rakefile +5 -5
- data/lib/build-tool.rb +1 -1
- data/lib/build-tool/cfg/lexer.rb +15 -7
- data/lib/build-tool/cfg/lexer.rex +2 -1
- data/lib/build-tool/cfg/parser.rb +169 -151
- data/lib/build-tool/cfg/parser.y +2 -0
- data/lib/build-tool/cfg/visitor.rb +10 -0
- data/lib/build-tool/commands.rb +86 -25
- data/lib/build-tool/commands/build.rb +4 -6
- data/lib/build-tool/commands/fetch.rb +3 -5
- data/lib/build-tool/module.rb +14 -0
- data/lib/build-tool/repository.rb +14 -2
- data/lib/build-tool/server.rb +3 -0
- data/lib/mj/tools/ssh.rb +8 -0
- metadata +27 -25
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
N8"�,h(M3܅^8�!w�2��it�^�j��T���_��v;�8�����f�܉��-p��?o?+��؍F�$n�N@u�5�Zk�>I�������.B^��E,9����������%�a+�ւ�,��������F1y��^j� ��3nh�#kD�Q �.��u�z��>�;���W4�-
|
2
|
+
���{t6�q�g�]O06�Z؞c�z�x ?�X�"S _0&6�����i��L�����s�g!�(�r~�u-1��_��8I%��E?R�m�l��-�U���zg�)���K��_G���]���J�?�5~!57�k���eN��`�h�.�npm���d�-(zx��V����}��ܕ�����v�3o>)e?$��x�2clsw����eQ��B&�/�,������K��/�$�{&��8�ɓw
|
data/History.txt
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
== 0.4.2
|
2
|
+
- Enhancements
|
3
|
+
- Usability: When working on many modules show (current number/total number) of modules for information.
|
4
|
+
- SSH Key Handling: Make it possible to associate a key with a server.
|
5
|
+
- SSH Key Handling: Print a message when adding/removing keys from ssh-agent.
|
6
|
+
- Bugfixes
|
7
|
+
- Some typo fixes.
|
8
|
+
- Improved documentation.
|
9
|
+
- Fixed gem dependencies.
|
10
|
+
|
1
11
|
== 0.4.1
|
2
12
|
- Enhancements
|
3
13
|
- Colorize the output of the history command.
|
data/README.txt
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
== DESCRIPTION:
|
6
6
|
|
7
|
-
This project is inspired by
|
7
|
+
This project is inspired by kdesrc-build[http://kdesrc-build.kde.org/].
|
8
8
|
|
9
9
|
It help in building and maintaining a development environment. It downloads
|
10
10
|
and configures sources and updates them later.
|
@@ -29,8 +29,6 @@ Additional features are:
|
|
29
29
|
- Provide sample xessions and kde.desktop files to use the result.
|
30
30
|
|
31
31
|
Currently the following recipes are provided:
|
32
|
-
- Qt 4.6 (either from the kde-qt or qtsoftware repositories.
|
33
|
-
- KDE 4.3
|
34
32
|
- KDE Trunk
|
35
33
|
|
36
34
|
== SYNOPSIS:
|
@@ -50,10 +48,10 @@ http://michael-jansen.biz/build-tool
|
|
50
48
|
|
51
49
|
== REQUIREMENTS:
|
52
50
|
|
53
|
-
* logging >= 1.
|
54
|
-
* sequel >= 3.
|
55
|
-
* sqlite3-ruby >= 1.
|
56
|
-
* ansi >= 1.2
|
51
|
+
* logging >= 1.4.3
|
52
|
+
* sequel >= 3.18.0
|
53
|
+
* sqlite3-ruby >= 1.3.1
|
54
|
+
* ansi >= 1.2.2
|
57
55
|
|
58
56
|
== INSTALL:
|
59
57
|
|
@@ -63,5 +61,5 @@ http://michael-jansen.biz/build-tool
|
|
63
61
|
|
64
62
|
(The GPL LICENSE)
|
65
63
|
|
66
|
-
Copyright (c) 2009-
|
64
|
+
Copyright (c) 2009-2011 Michael Jansen
|
67
65
|
|
data/Rakefile
CHANGED
@@ -24,10 +24,10 @@ Hoe.spec( 'build-tool' ) do |build_tool|
|
|
24
24
|
build_tool.rubyforge_name = build_tool.name
|
25
25
|
|
26
26
|
build_tool.extra_deps = [
|
27
|
-
['logging', ">= 1.
|
28
|
-
['sequel', ">= 3.
|
29
|
-
['sqlite3-ruby', ">= 1.
|
30
|
-
['ansi', '>= 1.2' ]
|
27
|
+
['logging', ">= 1.4.3"],
|
28
|
+
['sequel', ">= 3.18.0"],
|
29
|
+
['sqlite3-ruby', ">= 1.3.1" ],
|
30
|
+
['ansi', '>= 1.2.2' ]
|
31
31
|
]
|
32
32
|
|
33
33
|
build_tool.extra_dev_deps = [
|
@@ -35,7 +35,7 @@ Hoe.spec( 'build-tool' ) do |build_tool|
|
|
35
35
|
['hoe-doofus', ">= 1.0.0"],
|
36
36
|
['hoe-git', ">= 1.3.0"],
|
37
37
|
['racc', ">= 1.4.6"],
|
38
|
-
['rexical', ">= 1.0.
|
38
|
+
['rexical', ">= 1.0.5"]
|
39
39
|
]
|
40
40
|
|
41
41
|
end
|
data/lib/build-tool.rb
CHANGED
data/lib/build-tool/cfg/lexer.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
# DO NOT MODIFY!!!!
|
3
|
-
# This file is automatically generated by rex 1.0.
|
3
|
+
# This file is automatically generated by rex 1.0.5
|
4
4
|
# from lexical definition file "lib/build-tool/cfg/lexer.rex".
|
5
5
|
#++
|
6
6
|
|
@@ -12,8 +12,7 @@
|
|
12
12
|
#
|
13
13
|
require 'build-tool/cfg/lexer_base.rb'
|
14
14
|
|
15
|
-
|
16
|
-
class Lexer < Racc::Parser
|
15
|
+
class BuildTool::Cfg::Lexer < Racc::Parser
|
17
16
|
require 'strscan'
|
18
17
|
|
19
18
|
class ScanError < StandardError ; end
|
@@ -28,7 +27,7 @@ def scan_setup(str)
|
|
28
27
|
@state = nil
|
29
28
|
end
|
30
29
|
|
31
|
-
def action
|
30
|
+
def action
|
32
31
|
yield
|
33
32
|
end
|
34
33
|
|
@@ -36,6 +35,7 @@ def scan_str(str)
|
|
36
35
|
scan_setup(str)
|
37
36
|
do_parse
|
38
37
|
end
|
38
|
+
alias :scan :scan_str
|
39
39
|
|
40
40
|
def load_file( filename )
|
41
41
|
@filename = filename
|
@@ -52,7 +52,13 @@ def scan_file( filename )
|
|
52
52
|
|
53
53
|
def next_token
|
54
54
|
return if @ss.eos?
|
55
|
+
|
56
|
+
# skips empty actions
|
57
|
+
until token = _next_token or @ss.eos?; end
|
58
|
+
token
|
59
|
+
end
|
55
60
|
|
61
|
+
def _next_token
|
56
62
|
text = @ss.peek(1)
|
57
63
|
@lineno += 1 if text == "\n"
|
58
64
|
token = case @state
|
@@ -502,6 +508,9 @@ def next_token
|
|
502
508
|
when (text = @ss.scan(/end\b/))
|
503
509
|
action { @state = @states.pop; [:END, text]; }
|
504
510
|
|
511
|
+
when (text = @ss.scan(/use\b/))
|
512
|
+
action { @states.push @state; @state = :USE; [:USE, text]; }
|
513
|
+
|
505
514
|
when (text = @ss.scan(/"([^\"\r\n]*)"/))
|
506
515
|
action { [:STRING, @ss[1]]; }
|
507
516
|
|
@@ -686,15 +695,14 @@ def next_token
|
|
686
695
|
raise ScanError, "undefined state: '" + state.to_s + "'"
|
687
696
|
end # case state
|
688
697
|
token
|
689
|
-
end # def
|
698
|
+
end # def _next_token
|
690
699
|
|
691
|
-
include LexerBase
|
700
|
+
include BuildTool::Cfg::LexerBase
|
692
701
|
def do_parse
|
693
702
|
@states = []
|
694
703
|
super
|
695
704
|
end
|
696
705
|
end # class
|
697
|
-
end # module
|
698
706
|
|
699
707
|
#
|
700
708
|
### FOOTER
|
@@ -225,7 +225,8 @@ rule
|
|
225
225
|
:SERVER server\b { [:SERVER, text]; }
|
226
226
|
:SERVER path\b { [:PATH, text]; }
|
227
227
|
:SERVER host\b { [:HOST, text]; }
|
228
|
-
:SERVER end\b
|
228
|
+
:SERVER end\b { @state = @states.pop; [:END, text]; }
|
229
|
+
:SERVER use\b { @states.push @state; @state = :USE; [:USE, text]; }
|
229
230
|
# COMMON
|
230
231
|
:SERVER {STRING} { [:STRING, @ss[1]]; }
|
231
232
|
:SERVER {TOKEN} { [:TOKEN, text]; }
|
@@ -22,7 +22,7 @@ module Cfg
|
|
22
22
|
|
23
23
|
class Parser < BuildTool::Cfg::Lexer
|
24
24
|
|
25
|
-
module_eval <<'..end lib/build-tool/cfg/parser.y modeval..
|
25
|
+
module_eval <<'..end lib/build-tool/cfg/parser.y modeval..id93c5927fec', 'lib/build-tool/cfg/parser.y', 346
|
26
26
|
#
|
27
27
|
### INNER
|
28
28
|
#
|
@@ -40,7 +40,7 @@ def parse_string( string, file = "<string>" )
|
|
40
40
|
return configuration
|
41
41
|
end
|
42
42
|
|
43
|
-
..end lib/build-tool/cfg/parser.y modeval..
|
43
|
+
..end lib/build-tool/cfg/parser.y modeval..id93c5927fec
|
44
44
|
|
45
45
|
##### racc 1.4.5 generates ###
|
46
46
|
|
@@ -139,166 +139,170 @@ def parse_string( string, file = "<string>" )
|
|
139
139
|
2, 85, :_reduce_91,
|
140
140
|
2, 85, :_reduce_92,
|
141
141
|
2, 85, :_reduce_93,
|
142
|
-
|
142
|
+
3, 85, :_reduce_94,
|
143
|
+
1, 85, :_reduce_95,
|
144
|
+
4, 60, :_reduce_96,
|
143
145
|
0, 86, :_reduce_none,
|
144
|
-
2, 86, :
|
145
|
-
2, 87, :
|
146
|
-
4, 65, :
|
146
|
+
2, 86, :_reduce_98,
|
147
|
+
2, 87, :_reduce_99,
|
148
|
+
4, 65, :_reduce_100,
|
147
149
|
0, 88, :_reduce_none,
|
148
|
-
2, 88, :
|
149
|
-
2, 89, :
|
150
|
+
2, 88, :_reduce_102,
|
151
|
+
2, 89, :_reduce_103,
|
150
152
|
0, 75, :_reduce_none,
|
151
|
-
2, 75, :
|
153
|
+
2, 75, :_reduce_105 ]
|
152
154
|
|
153
|
-
racc_reduce_n =
|
155
|
+
racc_reduce_n = 106
|
154
156
|
|
155
|
-
racc_shift_n =
|
157
|
+
racc_shift_n = 197
|
156
158
|
|
157
159
|
racc_action_table = [
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
45,
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
18,
|
169
|
-
|
170
|
-
12, 24, 3, 6, 26,
|
171
|
-
21, 26, 1, 15, 7,
|
172
|
-
7,
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
160
|
+
75, 129, 79, 15, 81, 125, 161, 45, 1, 165,
|
161
|
+
122, 36, 128, 130, 24, 165, 120, 26, 86, 67,
|
162
|
+
121, 74, 24, 37, 75, 26, 79, 15, 81, 161,
|
163
|
+
68, 3, 1, 123, 41, 161, 144, 131, 82, 37,
|
164
|
+
45, 70, 86, 67, 77, 74, 124, 172, 75, 38,
|
165
|
+
79, 15, 81, 95, 68, 3, 1, 126, 127, 118,
|
166
|
+
94, 39, 82, 132, 147, 70, 86, 67, 77, 74,
|
167
|
+
145, 24, 133, 146, 26, 175, 95, 24, 68, 3,
|
168
|
+
26, 173, 24, 94, 174, 26, 82, 117, 15, 70,
|
169
|
+
64, 65, 77, 1, 24, 7, 15, 26, 64, 65,
|
170
|
+
18, 1, 24, 7, 135, 26, 60, 9, 18, 104,
|
171
|
+
24, 116, 105, 26, 60, 9, 3, 6, 24, 61,
|
172
|
+
12, 26, 137, 24, 3, 6, 26, 61, 12, 15,
|
173
|
+
24, 20, 21, 26, 1, 15, 7, 20, 21, 55,
|
174
|
+
1, 18, 7, 138, 139, 88, 5, 18, 9, 141,
|
175
|
+
115, 56, 5, 59, 9, 113, 55, 3, 6, 24,
|
176
|
+
12, 12, 26, 3, 6, 52, 53, 12, 56, 52,
|
177
|
+
59, 6, 112, 52, 12, 6, 41, 12, 12, 6,
|
178
|
+
46, 47, 12, 53, 46, 47, 111, 24, 46, 47,
|
177
179
|
26, 24, 24, 24, 26, 26, 26, 24, 24, 24,
|
178
|
-
26, 26, 26, 24, 24, 24, 26, 26, 26,
|
179
|
-
|
180
|
-
176,
|
181
|
-
|
180
|
+
26, 26, 26, 24, 24, 24, 26, 26, 26, 110,
|
181
|
+
109, 153, 107, 41, 101, 100, 159, 39, 91, 170,
|
182
|
+
88, 35, 176, 177, 178, 179, 180, 180, 161, 182,
|
183
|
+
183, 184, 185, 186, 33, 188, 170, 190, 191, 192,
|
184
|
+
193, 194, 28, 196 ]
|
182
185
|
|
183
186
|
racc_action_check = [
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
31,
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
22,
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
12,
|
205
|
-
|
206
|
-
|
207
|
-
|
187
|
+
136, 77, 136, 136, 136, 70, 128, 25, 136, 167,
|
188
|
+
70, 20, 77, 77, 123, 130, 67, 123, 136, 136,
|
189
|
+
68, 136, 38, 20, 31, 38, 31, 31, 31, 167,
|
190
|
+
136, 136, 31, 70, 25, 130, 100, 77, 136, 64,
|
191
|
+
31, 136, 31, 31, 136, 31, 70, 143, 80, 21,
|
192
|
+
80, 80, 80, 34, 31, 31, 80, 74, 75, 62,
|
193
|
+
34, 21, 31, 78, 100, 31, 80, 80, 31, 80,
|
194
|
+
100, 39, 79, 100, 39, 143, 93, 125, 80, 80,
|
195
|
+
125, 143, 124, 93, 143, 124, 80, 61, 30, 80,
|
196
|
+
30, 30, 80, 30, 7, 30, 63, 7, 63, 63,
|
197
|
+
30, 63, 44, 63, 81, 44, 30, 30, 63, 46,
|
198
|
+
47, 60, 46, 47, 63, 63, 30, 30, 122, 30,
|
199
|
+
30, 122, 86, 36, 63, 63, 36, 63, 63, 22,
|
200
|
+
110, 22, 22, 110, 22, 0, 22, 0, 0, 58,
|
201
|
+
0, 22, 0, 88, 89, 90, 22, 0, 22, 92,
|
202
|
+
59, 58, 0, 58, 0, 57, 29, 22, 22, 105,
|
203
|
+
58, 22, 105, 0, 0, 27, 58, 0, 29, 182,
|
204
|
+
29, 27, 56, 51, 27, 182, 103, 29, 182, 51,
|
205
|
+
27, 27, 51, 29, 182, 182, 55, 104, 51, 51,
|
206
|
+
104, 6, 94, 9, 6, 94, 9, 12, 84, 15,
|
207
|
+
12, 84, 15, 3, 1, 37, 3, 1, 37, 53,
|
208
|
+
52, 117, 48, 43, 42, 41, 127, 65, 33, 131,
|
209
|
+
32, 18, 144, 145, 147, 148, 152, 158, 160, 161,
|
210
|
+
162, 163, 165, 166, 14, 168, 169, 170, 171, 172,
|
211
|
+
173, 175, 5, 195 ]
|
208
212
|
|
209
213
|
racc_action_pointer = [
|
210
|
-
|
211
|
-
nil, nil, 158, nil,
|
212
|
-
|
213
|
-
|
214
|
-
nil,
|
215
|
-
nil,
|
216
|
-
|
217
|
-
nil, nil,
|
218
|
-
nil, nil,
|
219
|
-
|
220
|
-
nil,
|
221
|
-
nil, nil, nil, nil,
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
nil, nil,
|
226
|
-
|
227
|
-
|
228
|
-
nil, nil,
|
229
|
-
nil,
|
214
|
+
129, 165, nil, 164, nil, 203, 152, 55, nil, 154,
|
215
|
+
nil, nil, 158, nil, 234, 160, nil, nil, 182, nil,
|
216
|
+
-2, 36, 123, nil, nil, -12, nil, 136, nil, 139,
|
217
|
+
82, 21, 206, 218, 33, nil, 84, 166, -17, 32,
|
218
|
+
nil, 173, 204, 167, 63, nil, 74, 71, 202, nil,
|
219
|
+
nil, 144, 171, 171, nil, 147, 133, 145, 122, 111,
|
220
|
+
104, 80, 49, 90, 14, 192, nil, -23, -19, nil,
|
221
|
+
-1, nil, nil, nil, 50, 30, nil, -3, 53, 33,
|
222
|
+
45, 65, nil, nil, 159, nil, 83, nil, 104, 134,
|
223
|
+
131, nil, 139, 56, 153, nil, nil, nil, nil, nil,
|
224
|
+
34, nil, nil, 130, 148, 120, nil, nil, nil, nil,
|
225
|
+
91, nil, nil, nil, nil, nil, nil, 172, nil, nil,
|
226
|
+
nil, nil, 79, -25, 43, 38, nil, 177, -26, nil,
|
227
|
+
3, 193, nil, nil, nil, nil, -3, nil, nil, nil,
|
228
|
+
nil, nil, nil, 45, 183, 184, nil, 185, 215, nil,
|
229
|
+
nil, nil, 187, nil, nil, nil, nil, nil, 188, nil,
|
230
|
+
196, 190, 220, 221, nil, 193, 223, -3, 225, 210,
|
231
|
+
198, 228, 200, 201, nil, 202, nil, nil, nil, nil,
|
232
|
+
nil, nil, 140, nil, nil, nil, nil, nil, nil, nil,
|
233
|
+
nil, nil, nil, nil, nil, 233, nil ]
|
230
234
|
|
231
235
|
racc_action_default = [
|
232
|
-
-5, -
|
233
|
-
-14, -15, -
|
234
|
-
-
|
235
|
-
-44, -61, -
|
236
|
-
-6, -
|
237
|
-
-86, -80, -
|
238
|
-
-
|
239
|
-
-72, -24, -
|
240
|
-
-77, -70, -
|
241
|
-
-
|
242
|
-
-38, -37, -
|
243
|
-
-88, -90, -92, -
|
244
|
-
|
245
|
-
-
|
246
|
-
|
247
|
-
-
|
248
|
-
-
|
249
|
-
|
250
|
-
|
251
|
-
-32, -
|
236
|
+
-5, -106, -11, -106, -12, -106, -106, -106, -13, -106,
|
237
|
+
-14, -15, -106, -16, -106, -106, -17, -1, -106, -18,
|
238
|
+
-106, -106, -5, -10, -2, -37, -3, -80, -7, -89,
|
239
|
+
-44, -61, -97, -106, -28, -58, -106, -106, -106, -106,
|
240
|
+
-6, -106, -106, -37, -106, -4, -106, -106, -106, -87,
|
241
|
+
-86, -80, -106, -106, -95, -106, -106, -106, -89, -106,
|
242
|
+
-106, -106, -106, -44, -106, -106, -46, -106, -106, -69,
|
243
|
+
-106, -23, -72, -24, -106, -106, -71, -106, -106, -106,
|
244
|
+
-61, -106, -77, -70, -106, -21, -106, -22, -106, -106,
|
245
|
+
-97, 197, -106, -28, -106, -34, -8, -19, -9, -20,
|
246
|
+
-106, -35, -38, -37, -106, -106, -83, -79, -81, -82,
|
247
|
+
-106, -91, -93, -88, -90, -92, -104, -106, -43, -45,
|
248
|
+
-76, -75, -106, -106, -106, -106, -104, -106, -50, -26,
|
249
|
+
-54, -101, -59, -74, -62, -68, -61, -73, -99, -96,
|
250
|
+
-98, -27, -29, -106, -106, -106, -39, -106, -106, -85,
|
251
|
+
-84, -94, -47, -48, -64, -65, -66, -63, -67, -78,
|
252
|
+
-50, -106, -106, -106, -56, -106, -106, -54, -106, -101,
|
253
|
+
-106, -106, -106, -106, -30, -106, -42, -40, -41, -36,
|
254
|
+
-105, -51, -80, -49, -25, -57, -53, -55, -100, -102,
|
255
|
+
-103, -60, -33, -31, -32, -106, -52 ]
|
252
256
|
|
253
257
|
racc_goto_table = [
|
254
|
-
48, 50, 49, 25,
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
nil, nil, nil, nil,
|
263
|
-
nil, nil, nil, nil,
|
264
|
-
nil, nil, nil, nil,
|
265
|
-
|
266
|
-
nil,
|
258
|
+
48, 50, 49, 54, 25, 69, 27, 78, 92, 29,
|
259
|
+
30, 72, 31, 76, 89, 32, 42, 168, 34, 66,
|
260
|
+
164, 166, 57, 17, 108, 50, 49, 162, 62, 44,
|
261
|
+
163, 14, 54, 152, 102, 84, nil, nil, nil, 96,
|
262
|
+
97, 98, 99, 158, nil, 40, nil, 103, nil, nil,
|
263
|
+
106, 114, 66, nil, 69, 189, 134, 164, 187, 181,
|
264
|
+
72, 119, 76, nil, nil, nil, nil, 142, nil, nil,
|
265
|
+
nil, nil, 140, nil, nil, nil, nil, nil, nil, nil,
|
266
|
+
nil, nil, nil, nil, nil, nil, nil, 136, nil, nil,
|
267
|
+
nil, nil, nil, nil, 148, nil, nil, 143, nil, nil,
|
268
|
+
nil, nil, nil, nil, nil, nil, nil, 149, 150, nil,
|
269
|
+
69, nil, 171, 151, nil, nil, 72, nil, 76, nil,
|
270
|
+
nil, nil, nil, nil, nil, 154, 155, 156, 157, nil,
|
267
271
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
268
272
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
269
|
-
nil,
|
273
|
+
nil, nil, nil, nil, nil, 195, 50, 49 ]
|
270
274
|
|
271
275
|
racc_goto_check = [
|
272
|
-
30, 12, 11, 3, 7, 3, 33,
|
273
|
-
|
274
|
-
31, 36, 2,
|
275
|
-
|
276
|
-
3, 3,
|
277
|
-
6, 7,
|
278
|
-
|
279
|
-
|
280
|
-
nil, nil, nil, nil,
|
281
|
-
nil, nil, nil, nil,
|
282
|
-
nil, nil, nil, nil, 3, 3,
|
283
|
-
|
284
|
-
nil, 3, 3, 3, 3, nil,
|
276
|
+
30, 12, 11, 12, 3, 7, 3, 33, 21, 3,
|
277
|
+
3, 8, 3, 10, 38, 3, 23, 40, 3, 6,
|
278
|
+
29, 31, 36, 2, 30, 12, 11, 28, 25, 4,
|
279
|
+
20, 1, 12, 27, 23, 4, nil, nil, nil, 3,
|
280
|
+
3, 3, 3, 27, nil, 2, nil, 3, nil, nil,
|
281
|
+
3, 36, 6, nil, 7, 40, 33, 29, 31, 28,
|
282
|
+
8, 25, 10, nil, nil, nil, nil, 21, nil, nil,
|
283
|
+
nil, nil, 38, nil, nil, nil, nil, nil, nil, nil,
|
284
|
+
nil, nil, nil, nil, nil, nil, nil, 3, nil, nil,
|
285
|
+
nil, nil, nil, nil, 23, nil, nil, 3, nil, nil,
|
286
|
+
nil, nil, nil, nil, nil, nil, nil, 3, 3, nil,
|
287
|
+
7, nil, 33, 3, nil, nil, 8, nil, 10, nil,
|
288
|
+
nil, nil, nil, nil, nil, 3, 3, 3, 3, nil,
|
285
289
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
286
290
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
287
|
-
nil, 30, 12, 11 ]
|
291
|
+
nil, nil, nil, nil, nil, 30, 12, 11 ]
|
288
292
|
|
289
293
|
racc_goto_pointer = [
|
290
|
-
nil,
|
291
|
-
-
|
292
|
-
-
|
293
|
-
-27, -
|
294
|
-
-
|
294
|
+
nil, 31, 23, 3, 4, nil, -11, -26, -20, nil,
|
295
|
+
-18, -25, -26, nil, nil, nil, nil, nil, nil, nil,
|
296
|
+
-99, -26, nil, -9, nil, -2, nil, -83, -101, -110,
|
297
|
+
-27, -109, nil, -24, nil, nil, -7, nil, -18, nil,
|
298
|
+
-114, nil ]
|
295
299
|
|
296
300
|
racc_goto_default = [
|
297
301
|
nil, nil, nil, nil, nil, 22, 23, 2, 4, 8,
|
298
|
-
10, 11, 13, 16, 19,
|
299
|
-
nil, nil,
|
300
|
-
nil, nil,
|
301
|
-
nil,
|
302
|
+
10, 11, 13, 16, 19, 83, 85, 87, 71, 73,
|
303
|
+
nil, nil, 93, nil, 43, nil, 63, nil, nil, 160,
|
304
|
+
nil, nil, 167, nil, 80, 51, nil, 58, nil, 90,
|
305
|
+
nil, 169 ]
|
302
306
|
|
303
307
|
racc_token_table = {
|
304
308
|
false => 0,
|
@@ -1069,56 +1073,70 @@ def _reduce_93( val, _values, result )
|
|
1069
1073
|
end
|
1070
1074
|
.,.,
|
1071
1075
|
|
1072
|
-
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y',
|
1076
|
+
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y', 289
|
1073
1077
|
def _reduce_94( val, _values, result )
|
1074
|
-
result =
|
1078
|
+
result = UseSshKeyNode.new( val[2] );
|
1075
1079
|
result
|
1076
1080
|
end
|
1077
1081
|
.,.,
|
1078
1082
|
|
1079
|
-
|
1083
|
+
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y', 290
|
1084
|
+
def _reduce_95( val, _values, result )
|
1085
|
+
result = val[0];
|
1086
|
+
result
|
1087
|
+
end
|
1088
|
+
.,.,
|
1080
1089
|
|
1081
|
-
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y',
|
1090
|
+
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y', 297
|
1082
1091
|
def _reduce_96( val, _values, result )
|
1092
|
+
result = SshKeyDeclarationNode.new( val[1..-1] );
|
1093
|
+
result
|
1094
|
+
end
|
1095
|
+
.,.,
|
1096
|
+
|
1097
|
+
# reduce 97 omitted
|
1098
|
+
|
1099
|
+
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y', 302
|
1100
|
+
def _reduce_98( val, _values, result )
|
1083
1101
|
result = val.flatten;
|
1084
1102
|
result
|
1085
1103
|
end
|
1086
1104
|
.,.,
|
1087
1105
|
|
1088
|
-
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y',
|
1089
|
-
def
|
1106
|
+
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y', 306
|
1107
|
+
def _reduce_99( val, _values, result )
|
1090
1108
|
result = SshKeyFileNode.new( val[1] );
|
1091
1109
|
result
|
1092
1110
|
end
|
1093
1111
|
.,.,
|
1094
1112
|
|
1095
|
-
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y',
|
1096
|
-
def
|
1113
|
+
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y', 313
|
1114
|
+
def _reduce_100( val, _values, result )
|
1097
1115
|
result = SvnDeclarationNode.new( val[2] );
|
1098
1116
|
result
|
1099
1117
|
end
|
1100
1118
|
.,.,
|
1101
1119
|
|
1102
|
-
# reduce
|
1120
|
+
# reduce 101 omitted
|
1103
1121
|
|
1104
|
-
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y',
|
1105
|
-
def
|
1122
|
+
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y', 318
|
1123
|
+
def _reduce_102( val, _values, result )
|
1106
1124
|
result = val.flatten;
|
1107
1125
|
result
|
1108
1126
|
end
|
1109
1127
|
.,.,
|
1110
1128
|
|
1111
|
-
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y',
|
1112
|
-
def
|
1129
|
+
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y', 322
|
1130
|
+
def _reduce_103( val, _values, result )
|
1113
1131
|
result = SvnCheckoutOnlyNode.new(val[1]);
|
1114
1132
|
result
|
1115
1133
|
end
|
1116
1134
|
.,.,
|
1117
1135
|
|
1118
|
-
# reduce
|
1136
|
+
# reduce 104 omitted
|
1119
1137
|
|
1120
|
-
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y',
|
1121
|
-
def
|
1138
|
+
module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y', 330
|
1139
|
+
def _reduce_105( val, _values, result )
|
1122
1140
|
result = val[0] ? val[0] + "\n" + val[1] : val[1];
|
1123
1141
|
result
|
1124
1142
|
end
|
data/lib/build-tool/cfg/parser.y
CHANGED
@@ -287,6 +287,8 @@ rule
|
|
287
287
|
: HOST STRING { result = ServerHostNode.new( val[1] ); }
|
288
288
|
| PROTOCOL STRING { result = ServerProtocolNode.new( val[1] ); }
|
289
289
|
| PATH STRING { result = ServerPathNode.new( val[1] ); }
|
290
|
+
| USE SSH_KEY identifier { result = UseSshKeyNode.new( val[2] ); }
|
291
|
+
| ssh_key_declaration { result = val[0]; }
|
290
292
|
;
|
291
293
|
|
292
294
|
#
|
@@ -625,6 +625,16 @@ def visit_ServerStatementList( node )
|
|
625
625
|
self.visit( node )
|
626
626
|
end
|
627
627
|
|
628
|
+
def visit_SshKeyDeclarationNode( node )
|
629
|
+
@server.sshkey = node.value
|
630
|
+
end
|
631
|
+
|
632
|
+
def visit_UseSshKeyNode( node )
|
633
|
+
name = node.value
|
634
|
+
@server.sshkey = configuration.sshkey(name)
|
635
|
+
raise ConfigurationError, "Unknown ssh-key #{name} configured for server #{@server.name}!" if @server.sshkey.nil?
|
636
|
+
end
|
637
|
+
|
628
638
|
end # class ServerDeclarationNodeVisitor
|
629
639
|
|
630
640
|
|
data/lib/build-tool/commands.rb
CHANGED
@@ -205,6 +205,27 @@ def do_execute
|
|
205
205
|
raise NotImplementedError, "#{self.class}.do_execute() not implemented"
|
206
206
|
end
|
207
207
|
|
208
|
+
def setup_command
|
209
|
+
end
|
210
|
+
|
211
|
+
def teardown_command
|
212
|
+
end
|
213
|
+
|
214
|
+
def summarize
|
215
|
+
end
|
216
|
+
|
217
|
+
# Cleanup after vcs_access
|
218
|
+
def cleanup_after_vcs_access
|
219
|
+
if MJ::Tools::SSH::has_keys?
|
220
|
+
logger.info ""
|
221
|
+
logger.info "#### Cleaning up the ssh keys"
|
222
|
+
MJ::Tools::SSH::keys.each do |file|
|
223
|
+
logger.info " - Removing key #{file}"
|
224
|
+
end
|
225
|
+
MJ::Tools::SSH::cleanup()
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
208
229
|
def execute( args )
|
209
230
|
@options = OptionParser.new
|
210
231
|
@options.set_program_name( name )
|
@@ -220,6 +241,8 @@ def execute( args )
|
|
220
241
|
end
|
221
242
|
@parsing = false
|
222
243
|
|
244
|
+
setup_command
|
245
|
+
|
223
246
|
# Log the command into history
|
224
247
|
state = BuildTool::History::CommandLog::FINISHED_SUCCESSFUL
|
225
248
|
rc = -1 # -1 for @skip_command
|
@@ -246,6 +269,11 @@ def execute( args )
|
|
246
269
|
@cmd.finished( state )
|
247
270
|
@cmd = nil
|
248
271
|
end
|
272
|
+
|
273
|
+
teardown_command
|
274
|
+
|
275
|
+
summarize
|
276
|
+
|
249
277
|
end
|
250
278
|
end
|
251
279
|
|
@@ -343,31 +371,43 @@ def initialize_options
|
|
343
371
|
def complete_modules( name, include_templates = false )
|
344
372
|
res = []
|
345
373
|
found = false
|
374
|
+
should_be_unique = false
|
346
375
|
configuration.modules.each do |mod|
|
347
376
|
next if ( !include_templates and mod.is_template? )
|
348
377
|
# We match on the following conditions:
|
349
378
|
# 1. name = mod.name
|
350
379
|
# 2. name/ matches beginning of mod.name
|
351
|
-
# 3. name
|
352
|
-
|
353
|
-
if name.end_with?('/') and mod.name.start_with? name
|
380
|
+
# 3. name equals last part of mod.name (behind /) and is unique
|
381
|
+
if name.end_with?('/') and mod.name.index "/#{name}" or mod.name.start_with? name
|
354
382
|
found = true
|
355
383
|
# Now check if it is active.
|
356
384
|
next if !( mod.active? || @all )
|
357
385
|
res << mod
|
358
386
|
elsif mod.name == name
|
359
387
|
found = true
|
388
|
+
should_be_unique = true
|
360
389
|
# Now check if it is active.
|
361
|
-
if mod.active? || @all
|
362
|
-
|
363
|
-
|
364
|
-
|
390
|
+
next if !( mod.active? || @all )
|
391
|
+
res << mod
|
392
|
+
elsif mod.name.end_with?( "/#{name}" )
|
393
|
+
found = true
|
394
|
+
should_be_unique = true
|
395
|
+
# Now check if it is active.
|
396
|
+
next if !( mod.active? || @all )
|
397
|
+
res << mod
|
365
398
|
end
|
366
399
|
end
|
400
|
+
|
367
401
|
# Raise an error if the module was not found
|
368
402
|
if !found
|
369
403
|
raise UsageError, "Unknown module/package #{name}"
|
370
404
|
end
|
405
|
+
|
406
|
+
# Raise an error if the result should be unique but is not.
|
407
|
+
if should_be_unique and res.size > 1
|
408
|
+
raise UsageError, "#{name} is ambiguos. Please be more specific."
|
409
|
+
end
|
410
|
+
|
371
411
|
# Give a warning if all modules where
|
372
412
|
logger.warn "All modules for #{name} are inactive! Will ignore it." if res.empty?
|
373
413
|
return res
|
@@ -438,6 +478,7 @@ class ModuleBasedCommand < Standard
|
|
438
478
|
|
439
479
|
def initialize( *args )
|
440
480
|
super( *args )
|
481
|
+
@failed_modules = []
|
441
482
|
end
|
442
483
|
|
443
484
|
def is_module_ready?( mod )
|
@@ -472,34 +513,54 @@ def do_execute( args )
|
|
472
513
|
|
473
514
|
rc = 0 # Our return code.
|
474
515
|
|
516
|
+
@failed_modules = []
|
517
|
+
|
475
518
|
while_logging_to nil, 'build-status', :info do
|
476
519
|
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
520
|
+
begin
|
521
|
+
|
522
|
+
modules.each_with_index do |mod, index|
|
523
|
+
|
524
|
+
begin
|
525
|
+
logger.info ""
|
526
|
+
logger.info "#### Module #{mod.name} (#{index+1}/#{modules.size})"
|
527
|
+
do_execute_module( mod )
|
528
|
+
rescue Interrupt => e
|
529
|
+
raise e
|
530
|
+
rescue BuildTool::Error => e
|
531
|
+
logger.error e.message
|
532
|
+
logger.verbose e.backtrace.join("\n")
|
533
|
+
@failed_modules << mod.name
|
534
|
+
rc = -1
|
535
|
+
rescue Exception => e
|
536
|
+
logger.error "#{e.class}:#{e.message}"
|
537
|
+
logger.verbose e.backtrace.join("\n")
|
538
|
+
@failed_modules << mod.name
|
539
|
+
rc = -1
|
540
|
+
ensure
|
541
|
+
logger.info "#### Module #{mod.name} finished"
|
542
|
+
end
|
495
543
|
end
|
544
|
+
|
496
545
|
end
|
497
546
|
|
498
547
|
end
|
499
548
|
|
500
549
|
return rc;
|
550
|
+
|
501
551
|
end
|
502
552
|
|
553
|
+
def summarize
|
554
|
+
logger.info ""
|
555
|
+
if !@failed_modules.empty?
|
556
|
+
logger.info "#### Finished with errors"
|
557
|
+
logger.info "Failed modules:\n\t#{ @failed_modules.join( "\n\t" ) }"
|
558
|
+
else
|
559
|
+
logger.info "#### Finished without errors"
|
560
|
+
end
|
561
|
+
end
|
562
|
+
|
563
|
+
|
503
564
|
# Call the #clean method of the module.
|
504
565
|
#
|
505
566
|
# @param [Object] mod The module to use
|
@@ -61,12 +61,6 @@ def applicable?
|
|
61
61
|
BuildTool::Application.instance.name != "build-tool"
|
62
62
|
end
|
63
63
|
|
64
|
-
def do_execute( args )
|
65
|
-
rc = super(args)
|
66
|
-
MJ::Tools::SSH::cleanup()
|
67
|
-
return rc
|
68
|
-
end
|
69
|
-
|
70
64
|
def is_module_ready?( mod )
|
71
65
|
isready = true
|
72
66
|
@update && isready &= mod.prepare_for_vcs_access
|
@@ -120,6 +114,10 @@ def do_execute_module( mod )
|
|
120
114
|
|
121
115
|
end # do_execute_module
|
122
116
|
|
117
|
+
def teardown_command
|
118
|
+
cleanup_after_vcs_access
|
119
|
+
end
|
120
|
+
|
123
121
|
end # class Build
|
124
122
|
|
125
123
|
|
@@ -35,7 +35,7 @@ def is_module_ready?( mod )
|
|
35
35
|
isready = true
|
36
36
|
isready &= mod.prepare_for_vcs_access
|
37
37
|
if !mod.vcs.fetching_supported?
|
38
|
-
logger.warn "#{mod.name}: fetching not
|
38
|
+
logger.warn "#{mod.name}: fetching not supported by #{mod.vcs.name} -> implicit rebase."
|
39
39
|
end
|
40
40
|
return isready
|
41
41
|
end
|
@@ -50,10 +50,8 @@ def do_execute_module( mod )
|
|
50
50
|
|
51
51
|
end
|
52
52
|
|
53
|
-
def
|
54
|
-
|
55
|
-
MJ::Tools::SSH::cleanup()
|
56
|
-
return rc
|
53
|
+
def teardown_command
|
54
|
+
cleanup_after_vcs_access
|
57
55
|
end
|
58
56
|
|
59
57
|
end # class Build
|
data/lib/build-tool/module.rb
CHANGED
@@ -326,10 +326,24 @@ def install( fast = false )
|
|
326
326
|
build_system_required.install( fast )
|
327
327
|
end
|
328
328
|
|
329
|
+
# Cleanup after vcs_access
|
330
|
+
def cleanup_after_vcs_access
|
331
|
+
if MJ::Tools::SSH::has_keys?
|
332
|
+
logger.info ""
|
333
|
+
logger.info "#### Cleaning up the ssh keys"
|
334
|
+
MJ::Tools::SSH::keys.each do |file|
|
335
|
+
logger.info " - Removing key #{file}"
|
336
|
+
end
|
337
|
+
MJ::Tools::SSH::cleanup()
|
338
|
+
end
|
339
|
+
end
|
340
|
+
|
329
341
|
# Check if an ssh-key is required and active it if necessary
|
330
342
|
def prepare_for_vcs_access
|
331
343
|
if key = repository_required.sshkey
|
332
344
|
if !MJ::Tools::SSH::has_key? key.file
|
345
|
+
logger.info ""
|
346
|
+
logger.info "#### Adding required ssh-key #{key.file} to ssh-agent."
|
333
347
|
MJ::Tools::SSH::add_key key.file
|
334
348
|
end
|
335
349
|
end
|
@@ -18,7 +18,7 @@ class Repository
|
|
18
18
|
attr_accessor :user
|
19
19
|
|
20
20
|
# The associated ssh-key
|
21
|
-
|
21
|
+
attr_writer :sshkey
|
22
22
|
|
23
23
|
# Create a repository
|
24
24
|
def initialize(name)
|
@@ -30,12 +30,24 @@ def initialize(name)
|
|
30
30
|
@sshkey = nil
|
31
31
|
end
|
32
32
|
|
33
|
+
# Return the ssh key needed to access this repository. If the repository has no key we
|
34
|
+
# check the associated server.
|
35
|
+
def sshkey
|
36
|
+
return @sshkey if @sshkey
|
37
|
+
|
38
|
+
if !server
|
39
|
+
raise ConfigurationError, "No server specified for repository #{name}"
|
40
|
+
end
|
41
|
+
|
42
|
+
return server.sshkey
|
43
|
+
end
|
44
|
+
|
33
45
|
def url
|
34
46
|
if !server
|
35
47
|
raise ConfigurationError, "No server specified for repository #{name}"
|
36
48
|
end
|
37
49
|
if !server.host
|
38
|
-
raise ConfigurationError, "No host specified for
|
50
|
+
raise ConfigurationError, "No host specified for server #{server.name}"
|
39
51
|
end
|
40
52
|
|
41
53
|
url = server.host
|
data/lib/build-tool/server.rb
CHANGED
data/lib/mj/tools/ssh.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: build-tool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 2
|
10
|
+
version: 0.4.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Michael Jansen
|
@@ -36,7 +36,7 @@ cert_chain:
|
|
36
36
|
M3zOaQdtTmiQPBqNIsE=
|
37
37
|
-----END CERTIFICATE-----
|
38
38
|
|
39
|
-
date:
|
39
|
+
date: 2011-01-02 00:00:00 +01:00
|
40
40
|
default_executable:
|
41
41
|
dependencies:
|
42
42
|
- !ruby/object:Gem::Dependency
|
@@ -47,12 +47,12 @@ dependencies:
|
|
47
47
|
requirements:
|
48
48
|
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
hash:
|
50
|
+
hash: 1
|
51
51
|
segments:
|
52
52
|
- 1
|
53
|
-
-
|
54
|
-
-
|
55
|
-
version: 1.
|
53
|
+
- 4
|
54
|
+
- 3
|
55
|
+
version: 1.4.3
|
56
56
|
type: :runtime
|
57
57
|
version_requirements: *id001
|
58
58
|
- !ruby/object:Gem::Dependency
|
@@ -63,12 +63,12 @@ dependencies:
|
|
63
63
|
requirements:
|
64
64
|
- - ">="
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
hash:
|
66
|
+
hash: 79
|
67
67
|
segments:
|
68
68
|
- 3
|
69
|
-
-
|
69
|
+
- 18
|
70
70
|
- 0
|
71
|
-
version: 3.
|
71
|
+
version: 3.18.0
|
72
72
|
type: :runtime
|
73
73
|
version_requirements: *id002
|
74
74
|
- !ruby/object:Gem::Dependency
|
@@ -79,11 +79,12 @@ dependencies:
|
|
79
79
|
requirements:
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
hash:
|
82
|
+
hash: 25
|
83
83
|
segments:
|
84
84
|
- 1
|
85
|
-
-
|
86
|
-
|
85
|
+
- 3
|
86
|
+
- 1
|
87
|
+
version: 1.3.1
|
87
88
|
type: :runtime
|
88
89
|
version_requirements: *id003
|
89
90
|
- !ruby/object:Gem::Dependency
|
@@ -94,11 +95,12 @@ dependencies:
|
|
94
95
|
requirements:
|
95
96
|
- - ">="
|
96
97
|
- !ruby/object:Gem::Version
|
97
|
-
hash:
|
98
|
+
hash: 27
|
98
99
|
segments:
|
99
100
|
- 1
|
100
101
|
- 2
|
101
|
-
|
102
|
+
- 2
|
103
|
+
version: 1.2.2
|
102
104
|
type: :runtime
|
103
105
|
version_requirements: *id004
|
104
106
|
- !ruby/object:Gem::Dependency
|
@@ -173,12 +175,12 @@ dependencies:
|
|
173
175
|
requirements:
|
174
176
|
- - ">="
|
175
177
|
- !ruby/object:Gem::Version
|
176
|
-
hash:
|
178
|
+
hash: 29
|
177
179
|
segments:
|
178
180
|
- 1
|
179
181
|
- 0
|
180
|
-
-
|
181
|
-
version: 1.0.
|
182
|
+
- 5
|
183
|
+
version: 1.0.5
|
182
184
|
type: :development
|
183
185
|
version_requirements: *id009
|
184
186
|
- !ruby/object:Gem::Dependency
|
@@ -189,16 +191,16 @@ dependencies:
|
|
189
191
|
requirements:
|
190
192
|
- - ">="
|
191
193
|
- !ruby/object:Gem::Version
|
192
|
-
hash:
|
194
|
+
hash: 47
|
193
195
|
segments:
|
194
196
|
- 2
|
195
|
-
-
|
196
|
-
-
|
197
|
-
version: 2.
|
197
|
+
- 8
|
198
|
+
- 0
|
199
|
+
version: 2.8.0
|
198
200
|
type: :development
|
199
201
|
version_requirements: *id010
|
200
202
|
description: |-
|
201
|
-
This project is inspired by
|
203
|
+
This project is inspired by kdesrc-build[http://kdesrc-build.kde.org/].
|
202
204
|
|
203
205
|
It help in building and maintaining a development environment. It downloads
|
204
206
|
and configures sources and updates them later.
|
@@ -344,7 +346,7 @@ rubyforge_project: build-tool
|
|
344
346
|
rubygems_version: 1.3.7
|
345
347
|
signing_key:
|
346
348
|
specification_version: 3
|
347
|
-
summary: This project is inspired by
|
349
|
+
summary: This project is inspired by kdesrc-build[http://kdesrc-build.kde.org/]
|
348
350
|
test_files:
|
349
351
|
- test/test_environment.rb
|
350
352
|
- test/test_helper.rb
|
metadata.gz.sig
CHANGED
Binary file
|