bakker 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING.txt +676 -0
- data/History.txt +6 -0
- data/Manifest.txt +8 -0
- data/README.txt +136 -0
- data/Rakefile +15 -0
- data/bin/bakker +139 -0
- data/lib/bakker.rb +69 -0
- data/spec/bakker_spec.rb +466 -0
- data.tar.gz.sig +3 -0
- metadata +114 -0
- metadata.gz.sig +2 -0
data/spec/bakker_spec.rb
ADDED
@@ -0,0 +1,466 @@
|
|
1
|
+
# Copyright 2009 Alexander E. Fischer <aef@raxys.net>
|
2
|
+
#
|
3
|
+
# This file is part of Bakker.
|
4
|
+
#
|
5
|
+
# Bakker is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>
|
17
|
+
|
18
|
+
require 'lib/bakker'
|
19
|
+
|
20
|
+
require 'tempfile'
|
21
|
+
require 'fileutils'
|
22
|
+
|
23
|
+
require 'rubygems'
|
24
|
+
require 'sys/uname'
|
25
|
+
|
26
|
+
# If there is a way to get the executable path of the currently running ruby
|
27
|
+
# interpreter, please tell me how.
|
28
|
+
warn 'Attention: If the ruby interpreter to be tested with is not ruby in the' +
|
29
|
+
'default path, you have to change this manually in spec/bakker_spec.rb'
|
30
|
+
RUBY_PATH = 'ruby'
|
31
|
+
|
32
|
+
module BakkerSpecHelper
|
33
|
+
def temp_file(name)
|
34
|
+
temp_file_path = File.join(@folder_path, name)
|
35
|
+
|
36
|
+
FileUtils.touch(File.join(@folder_path, name))
|
37
|
+
|
38
|
+
temp_file_path
|
39
|
+
end
|
40
|
+
|
41
|
+
def windows?
|
42
|
+
Sys::Uname.sysname.downcase.include?('windows')
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe Bakker do
|
47
|
+
include BakkerSpecHelper
|
48
|
+
|
49
|
+
before(:each) do
|
50
|
+
temp_file = Tempfile.new('bakker_spec')
|
51
|
+
@folder_path = temp_file.path
|
52
|
+
temp_file.close
|
53
|
+
temp_file.unlink
|
54
|
+
|
55
|
+
FileUtils.mkdir(@folder_path)
|
56
|
+
end
|
57
|
+
|
58
|
+
after(:each) do
|
59
|
+
FileUtils.rm_rf(@folder_path)
|
60
|
+
end
|
61
|
+
|
62
|
+
describe 'library' do
|
63
|
+
it "should throw an exception when source file does not exist" do
|
64
|
+
source_path = temp_file('abc')
|
65
|
+
FileUtils.rm(source_path)
|
66
|
+
|
67
|
+
lambda {
|
68
|
+
Bakker.process(source_path)
|
69
|
+
}.should raise_error(BakkerWarning)
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should throw an exception when source and target file do exist" do
|
73
|
+
source_path = temp_file('abc')
|
74
|
+
target_path = temp_file('abc.bak')
|
75
|
+
|
76
|
+
lambda {
|
77
|
+
Bakker.process(source_path)
|
78
|
+
}.should raise_error(BakkerWarning)
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should extend a non-extended file correctly" do
|
82
|
+
source_path = temp_file('def')
|
83
|
+
target_path = File.join(@folder_path, 'def.bak')
|
84
|
+
|
85
|
+
lambda {
|
86
|
+
Bakker.process(source_path, '.bak', :toggle, :move)
|
87
|
+
}.should change{ File.exist?(target_path) }.from(false).to(true) and
|
88
|
+
change{ File.exist?(source_path) }.from(true).to(false)
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should extend a non-extended file correctly even if only the target is given" do
|
92
|
+
source_path = temp_file('def')
|
93
|
+
target_path = File.join(@folder_path, 'def.bak')
|
94
|
+
|
95
|
+
lambda {
|
96
|
+
Bakker.process(target_path, '.bak', :toggle, :move)
|
97
|
+
}.should change{ File.exist?(target_path) }.from(false).to(true) and
|
98
|
+
change{ File.exist?(source_path) }.from(true).to(false)
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should not extend a non-extended file if mode is remove" do
|
102
|
+
source_path = temp_file('abc')
|
103
|
+
target_path = File.join(@folder_path, 'abc.ext')
|
104
|
+
|
105
|
+
lambda {
|
106
|
+
Bakker.process(source_path, '.ext', :remove, :move)
|
107
|
+
}.should_not change{ File.exist?(target_path) == false } and
|
108
|
+
change{ File.exist?(source_path) == true }
|
109
|
+
end
|
110
|
+
|
111
|
+
it "should not extend a non-extended file if mode is remove even if only the target is given" do
|
112
|
+
source_path = temp_file('abc')
|
113
|
+
target_path = File.join(@folder_path, 'abc.ext')
|
114
|
+
|
115
|
+
lambda {
|
116
|
+
Bakker.process(target_path, '.ext', :remove, :move)
|
117
|
+
}.should_not change{ File.exist?(target_path) == false } and
|
118
|
+
change{ File.exist?(source_path) == true }
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should extend a non-extended file if mode is add" do
|
122
|
+
source_path = temp_file('abc')
|
123
|
+
target_path = File.join(@folder_path, 'abc.ext')
|
124
|
+
|
125
|
+
lambda {
|
126
|
+
Bakker.process(source_path, '.ext', :add, :move)
|
127
|
+
}.should change{ File.exist?(target_path) }.from(false).to(true) and
|
128
|
+
change{ File.exist?(source_path) }.from(true).to(false)
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should extend a non-extended file if mode is add even if only the target is given" do
|
132
|
+
source_path = temp_file('abc')
|
133
|
+
target_path = File.join(@folder_path, 'abc.ext')
|
134
|
+
|
135
|
+
lambda {
|
136
|
+
Bakker.process(source_path, '.ext', :add, :move)
|
137
|
+
}.should change{ File.exist?(target_path) }.from(false).to(true) and
|
138
|
+
change{ File.exist?(source_path) }.from(true).to(false)
|
139
|
+
end
|
140
|
+
|
141
|
+
it "should create an extended copy of a non-extended file if action is copy" do
|
142
|
+
source_path = temp_file('xyz')
|
143
|
+
target_path = File.join(@folder_path, 'xyz.tar.gz')
|
144
|
+
|
145
|
+
lambda {
|
146
|
+
Bakker.process(source_path, '.tar.gz', :toggle, :copy)
|
147
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
148
|
+
not change{ File.exists?(source_path) == true }
|
149
|
+
end
|
150
|
+
|
151
|
+
it "should create an extended copy of a non-extended file if action is copy even if only the target is given" do
|
152
|
+
source_path = temp_file('xyz')
|
153
|
+
target_path = File.join(@folder_path, 'xyz.tar.gz')
|
154
|
+
|
155
|
+
lambda {
|
156
|
+
Bakker.process(target_path, '.tar.gz', :toggle, :copy)
|
157
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
158
|
+
not change{ File.exists?(source_path) == true }
|
159
|
+
end
|
160
|
+
|
161
|
+
it "should unextend an extended file correctly" do
|
162
|
+
source_path = temp_file('xyz.zirbel')
|
163
|
+
target_path = File.join(@folder_path, 'xyz')
|
164
|
+
|
165
|
+
lambda {
|
166
|
+
Bakker.process(source_path, '.zirbel', :toggle, :move)
|
167
|
+
}.should change{ File.exist?(target_path) }.from(false).to(true) and
|
168
|
+
change{ File.exist?(source_path) }.from(true).to(false)
|
169
|
+
end
|
170
|
+
|
171
|
+
it "should unextend an extended file correctly even if only the target is given" do
|
172
|
+
source_path = temp_file('xyz.zirbel')
|
173
|
+
target_path = File.join(@folder_path, 'xyz')
|
174
|
+
|
175
|
+
lambda {
|
176
|
+
Bakker.process(target_path, '.zirbel', :toggle, :move)
|
177
|
+
}.should change{ File.exist?(target_path) }.from(false).to(true) and
|
178
|
+
change{ File.exist?(source_path) }.from(true).to(false)
|
179
|
+
end
|
180
|
+
|
181
|
+
it "should not unextend an extended file if mode is add" do
|
182
|
+
source_path = temp_file('1234.bak')
|
183
|
+
target_path = File.join(@folder_path, '1234')
|
184
|
+
|
185
|
+
lambda {
|
186
|
+
Bakker.process(source_path, '.bak', :add, :move)
|
187
|
+
}.should_not change{ File.exist?(target_path) == false } and
|
188
|
+
change{ File.exist?(source_path) == true }
|
189
|
+
end
|
190
|
+
|
191
|
+
it "should not unextend an extended file if mode is add even if only the target is given" do
|
192
|
+
source_path = temp_file('1234.bak')
|
193
|
+
target_path = File.join(@folder_path, '1234')
|
194
|
+
|
195
|
+
lambda {
|
196
|
+
Bakker.process(target_path, '.bak', :add, :move)
|
197
|
+
}.should_not change{ File.exist?(target_path) == false } and
|
198
|
+
change{ File.exist?(source_path) == true }
|
199
|
+
end
|
200
|
+
|
201
|
+
it "should unextend an extended file if mode is remove" do
|
202
|
+
source_path = temp_file('testfile.1234')
|
203
|
+
target_path = File.join(@folder_path, 'testfile')
|
204
|
+
|
205
|
+
lambda {
|
206
|
+
Bakker.process(source_path, '.1234', :remove, :move)
|
207
|
+
}.should change{ File.exist?(target_path) }.from(false).to(true) and
|
208
|
+
change{ File.exist?(source_path) }.from(true).to(false)
|
209
|
+
end
|
210
|
+
|
211
|
+
it "should unextend an extended file if mode is remove even if only the target is given" do
|
212
|
+
source_path = temp_file('testfile.1234')
|
213
|
+
target_path = File.join(@folder_path, 'testfile')
|
214
|
+
|
215
|
+
lambda {
|
216
|
+
Bakker.process(target_path, '.1234', :remove, :move)
|
217
|
+
}.should change{ File.exist?(target_path) }.from(false).to(true) and
|
218
|
+
change{ File.exist?(source_path) }.from(true).to(false)
|
219
|
+
end
|
220
|
+
|
221
|
+
it "should create an unextended copy of an extended file if action is copy" do
|
222
|
+
source_path = temp_file('demo.exe')
|
223
|
+
target_path = File.join(@folder_path, 'demo')
|
224
|
+
|
225
|
+
lambda {
|
226
|
+
Bakker.process(source_path, '.exe', :toggle, :copy)
|
227
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
228
|
+
not change{ File.exists?(source_path) == true }
|
229
|
+
end
|
230
|
+
|
231
|
+
it "should create an unextended copy of an extended file if action is copy even if only the target is given" do
|
232
|
+
source_path = temp_file('demo.exe')
|
233
|
+
target_path = File.join(@folder_path, 'demo')
|
234
|
+
|
235
|
+
lambda {
|
236
|
+
Bakker.process(target_path, '.exe', :toggle, :copy)
|
237
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
238
|
+
not change{ File.exists?(source_path) == true }
|
239
|
+
end
|
240
|
+
end
|
241
|
+
|
242
|
+
describe 'commandline tool' do
|
243
|
+
it "use action move, extension .bak and mode toggle by default" do
|
244
|
+
source_path = temp_file('test.bak')
|
245
|
+
target_path = File.join(@folder_path, 'test')
|
246
|
+
|
247
|
+
lambda {
|
248
|
+
`#{RUBY_PATH} bin/bakker #{source_path}`
|
249
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
250
|
+
change{ File.exists?(source_path) }.from(true).to(false)
|
251
|
+
|
252
|
+
lambda {
|
253
|
+
`#{RUBY_PATH} bin/bakker #{target_path}`
|
254
|
+
}.should change{ File.exists?(target_path) }.from(true).to(false) and
|
255
|
+
change{ File.exists?(source_path) }.from(false).to(true)
|
256
|
+
end
|
257
|
+
|
258
|
+
it "should use -a to select the action" do
|
259
|
+
source_path = temp_file('abc')
|
260
|
+
target_path = File.join(@folder_path, 'abc.bak')
|
261
|
+
|
262
|
+
lambda {
|
263
|
+
`#{RUBY_PATH} bin/bakker -a copy #{source_path}`
|
264
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
265
|
+
not change{ File.exists?(source_path) == true }
|
266
|
+
end
|
267
|
+
|
268
|
+
it "should use --action to select the action" do
|
269
|
+
source_path = temp_file('abc')
|
270
|
+
target_path = File.join(@folder_path, 'abc.bak')
|
271
|
+
|
272
|
+
lambda {
|
273
|
+
`#{RUBY_PATH} bin/bakker --action copy #{source_path}`
|
274
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
275
|
+
not change{ File.exists?(source_path) == true }
|
276
|
+
end
|
277
|
+
|
278
|
+
it "should use -e to select an extension" do
|
279
|
+
source_path = temp_file('abc')
|
280
|
+
target_path = File.join(@folder_path, 'abc.zirbel')
|
281
|
+
|
282
|
+
lambda {
|
283
|
+
`#{RUBY_PATH} bin/bakker -e .zirbel #{source_path}`
|
284
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
285
|
+
change{ File.exists?(source_path) }.from(true).to(false)
|
286
|
+
end
|
287
|
+
|
288
|
+
it "should use --extension to select an extension" do
|
289
|
+
source_path = temp_file('abc')
|
290
|
+
target_path = File.join(@folder_path, 'abc.zirbel')
|
291
|
+
|
292
|
+
lambda {
|
293
|
+
`#{RUBY_PATH} bin/bakker --extension .zirbel #{source_path}`
|
294
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
295
|
+
change{ File.exists?(source_path) }.from(true).to(false)
|
296
|
+
end
|
297
|
+
|
298
|
+
it "should use -m to select a processing mode" do
|
299
|
+
source_path = temp_file('abc')
|
300
|
+
target_path = File.join(@folder_path, 'abc.bak')
|
301
|
+
|
302
|
+
lambda {
|
303
|
+
`#{RUBY_PATH} bin/bakker -m remove #{source_path}`
|
304
|
+
}.should_not change{ File.exists?(target_path) == false } and
|
305
|
+
change{ File.exists?(source_path) == true }
|
306
|
+
|
307
|
+
lambda {
|
308
|
+
`#{RUBY_PATH} bin/bakker -m toggle #{source_path}`
|
309
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
310
|
+
change{ File.exists?(source_path) }.from(true).to(false)
|
311
|
+
|
312
|
+
lambda {
|
313
|
+
`#{RUBY_PATH} bin/bakker -m add #{source_path}`
|
314
|
+
}.should_not change{ File.exists?(target_path) == true } and
|
315
|
+
change{ File.exists?(source_path) == false }
|
316
|
+
end
|
317
|
+
|
318
|
+
it "should use --mode to select a processing mode" do
|
319
|
+
source_path = temp_file('abc')
|
320
|
+
target_path = File.join(@folder_path, 'abc.bak')
|
321
|
+
|
322
|
+
lambda {
|
323
|
+
`#{RUBY_PATH} bin/bakker --mode remove #{source_path}`
|
324
|
+
}.should_not change{ File.exists?(target_path) == false } and
|
325
|
+
change{ File.exists?(source_path) == true }
|
326
|
+
|
327
|
+
lambda {
|
328
|
+
`#{RUBY_PATH} bin/bakker --mode toggle #{source_path}`
|
329
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
330
|
+
change{ File.exists?(source_path) }.from(true).to(false)
|
331
|
+
|
332
|
+
lambda {
|
333
|
+
`#{RUBY_PATH} bin/bakker --mode add #{source_path}`
|
334
|
+
}.should_not change{ File.exists?(target_path) == true } and
|
335
|
+
change{ File.exists?(source_path) == false }
|
336
|
+
end
|
337
|
+
|
338
|
+
it "should allow multiple files as argument" do
|
339
|
+
source_path_a = temp_file('abc')
|
340
|
+
target_path_a = File.join(@folder_path, 'abc.bak')
|
341
|
+
source_path_b = temp_file('def.bak')
|
342
|
+
target_path_b = File.join(@folder_path, 'def')
|
343
|
+
source_path_c = temp_file('xyz')
|
344
|
+
target_path_c = File.join(@folder_path, 'xyz.bak')
|
345
|
+
|
346
|
+
lambda {
|
347
|
+
`#{RUBY_PATH} bin/bakker #{source_path_a} #{source_path_b} #{source_path_c}`
|
348
|
+
}.should change{ File.exists?(target_path_a) }.from(false).to(true) and
|
349
|
+
change{ File.exists?(source_path_a) }.from(true).to(false) and
|
350
|
+
change{ File.exists?(target_path_b) }.from(false).to(true) and
|
351
|
+
change{ File.exists?(source_path_b) }.from(true).to(false) and
|
352
|
+
change{ File.exists?(target_path_c) }.from(false).to(true) and
|
353
|
+
change{ File.exists?(source_path_c) }.from(true).to(false)
|
354
|
+
end
|
355
|
+
|
356
|
+
it "should accept action config via environment variables" do
|
357
|
+
source_path = temp_file('abc')
|
358
|
+
target_path = File.join(@folder_path, 'abc.bak')
|
359
|
+
|
360
|
+
lambda {
|
361
|
+
if windows?
|
362
|
+
`set BAKKER_ACTION=copy`
|
363
|
+
`#{RUBY_PATH} bin/bakker #{source_path}`
|
364
|
+
else
|
365
|
+
`env BAKKER_ACTION=copy #{RUBY_PATH} bin/bakker #{source_path}`
|
366
|
+
end
|
367
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
368
|
+
not change{ File.exists?(source_path) == true }
|
369
|
+
end
|
370
|
+
|
371
|
+
it "should prefer commandline setting over environment for action" do
|
372
|
+
source_path = temp_file('abc')
|
373
|
+
target_path = File.join(@folder_path, 'abc.bak')
|
374
|
+
|
375
|
+
lambda {
|
376
|
+
if windows?
|
377
|
+
`set BAKKER_ACTION=copy`
|
378
|
+
`#{RUBY_PATH} bin/bakker -a move #{source_path}`
|
379
|
+
else
|
380
|
+
`env BAKKER_ACTION=copy #{RUBY_PATH} bin/bakker -a move #{source_path}`
|
381
|
+
end
|
382
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
383
|
+
change{ File.exists?(source_path) }.from(true).to(false)
|
384
|
+
end
|
385
|
+
|
386
|
+
it "should accept extension config via environment variables" do
|
387
|
+
source_path = temp_file('abc')
|
388
|
+
target_path = File.join(@folder_path, 'abc.zirbel')
|
389
|
+
|
390
|
+
lambda {
|
391
|
+
if windows?
|
392
|
+
`set BAKKER_EXTENSION=.zirbel`
|
393
|
+
`#{RUBY_PATH} bin/bakker #{source_path}`
|
394
|
+
else
|
395
|
+
`env BAKKER_EXTENSION=.zirbel #{RUBY_PATH} bin/bakker #{source_path}`
|
396
|
+
end
|
397
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
398
|
+
change{ File.exists?(source_path) }.from(true).to(false)
|
399
|
+
end
|
400
|
+
|
401
|
+
it "should prefer commandline setting over environment for extension" do
|
402
|
+
source_path = temp_file('abc')
|
403
|
+
target_path = File.join(@folder_path, 'abc.zirbel')
|
404
|
+
|
405
|
+
lambda {
|
406
|
+
if windows?
|
407
|
+
`set BAKKER_EXTENSION=.1234`
|
408
|
+
`#{RUBY_PATH} bin/bakker -e .zirbel #{source_path}`
|
409
|
+
else
|
410
|
+
`env BAKKER_EXTENSION=.1234 #{RUBY_PATH} bin/bakker -e .zirbel #{source_path}`
|
411
|
+
end
|
412
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
413
|
+
change{ File.exists?(source_path) }.from(true).to(false)
|
414
|
+
end
|
415
|
+
|
416
|
+
it "should accept extension config via environment variables" do
|
417
|
+
source_path = temp_file('abc')
|
418
|
+
target_path = File.join(@folder_path, 'abc.bak')
|
419
|
+
|
420
|
+
lambda {
|
421
|
+
if windows?
|
422
|
+
`set BAKKER_MODE=remove`
|
423
|
+
`#{RUBY_PATH} bin/bakker #{source_path}`
|
424
|
+
else
|
425
|
+
`env BAKKER_MODE=remove #{RUBY_PATH} bin/bakker #{source_path}`
|
426
|
+
end
|
427
|
+
}.should_not change{ File.exists?(target_path) == false } and
|
428
|
+
change{ File.exists?(source_path) == true }
|
429
|
+
|
430
|
+
lambda {
|
431
|
+
if windows?
|
432
|
+
`set BAKKER_MODE=toggle`
|
433
|
+
`#{RUBY_PATH} bin/bakker #{source_path}`
|
434
|
+
else
|
435
|
+
`env BAKKER_MODE=toggle #{RUBY_PATH} bin/bakker #{source_path}`
|
436
|
+
end
|
437
|
+
}.should change{ File.exists?(target_path) }.from(false).to(true) and
|
438
|
+
change{ File.exists?(source_path) }.from(true).to(false)
|
439
|
+
|
440
|
+
lambda {
|
441
|
+
if windows?
|
442
|
+
`set BAKKER_MODE=add`
|
443
|
+
`#{RUBY_PATH} bin/bakker #{source_path}`
|
444
|
+
else
|
445
|
+
`env BAKKER_MODE=add #{RUBY_PATH} bin/bakker #{source_path}`
|
446
|
+
end
|
447
|
+
}.should_not change{ File.exists?(target_path) == true } and
|
448
|
+
change{ File.exists?(source_path) == false }
|
449
|
+
end
|
450
|
+
|
451
|
+
it "should prefer commandline setting over environment for mode" do
|
452
|
+
source_path = temp_file('abc')
|
453
|
+
target_path = File.join(@folder_path, 'abc.bak')
|
454
|
+
|
455
|
+
lambda {
|
456
|
+
if windows?
|
457
|
+
`set BAKKER_MODE=add`
|
458
|
+
`#{RUBY_PATH} bin/bakker -m remove #{source_path}`
|
459
|
+
else
|
460
|
+
`env BAKKER_MODE=add #{RUBY_PATH} bin/bakker -m remove #{source_path}`
|
461
|
+
end
|
462
|
+
}.should_not change{ File.exists?(target_path) == false } and
|
463
|
+
change{ File.exists?(source_path) == true }
|
464
|
+
end
|
465
|
+
end
|
466
|
+
end
|
data.tar.gz.sig
ADDED
metadata
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bakker
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alexander E. Fischer
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDKDCCAhCgAwIBAgIBADANBgkqhkiG9w0BAQUFADA6MQwwCgYDVQQDDANhZWYx
|
14
|
+
FTATBgoJkiaJk/IsZAEZFgVyYXh5czETMBEGCgmSJomT8ixkARkWA25ldDAeFw0w
|
15
|
+
OTAyMjUyMDM5MDhaFw0xMDAyMjUyMDM5MDhaMDoxDDAKBgNVBAMMA2FlZjEVMBMG
|
16
|
+
CgmSJomT8ixkARkWBXJheHlzMRMwEQYKCZImiZPyLGQBGRYDbmV0MIIBIjANBgkq
|
17
|
+
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoYtj0qad5/MpbdttITzBH0h1SNe6eO7R
|
18
|
+
7qVeqNYu6qDQAQ0rYc0JhubJCWYrZEJorHEBhUFU6cdQgQOs78wiJaDgkeU7YfXB
|
19
|
+
q2l125kJ8aHkA1ukrK2/DRzp2AHEmzxHIYpXV5/63h+NWjCP+uKvTELYsotS2MKt
|
20
|
+
3d43E0QajsPZu2ZuNFwkroqeue872gMHUldGOVy5WtSd9ajw2xI/CociY6746dL+
|
21
|
+
pYriV3QaYtR/ezeaLpKBLsc5T1UQ07t7Xs7mI281tdmRvpLdP5dQhjzInfio0CJv
|
22
|
+
1Pf5bZUjGG0K9RW2Gb/tGPSYEETiLMubjH61OwBooXKiWR5cs4/1BQIDAQABozkw
|
23
|
+
NzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUSYvjhG2EWnR5kx5l
|
24
|
+
DAewXCkJOVEwDQYJKoZIhvcNAQEFBQADggEBAB2ryDbU4bQtnunKv/AXq4CuO3LS
|
25
|
+
kik9Xhye8E/5dTcsgitCZJXAqx0rHcK0u2EHnjA5CDcdF5JB7XgSvRrQkFWoW/9K
|
26
|
+
lCB4ih+sB2AI2IUiYBeoCGctXdBQ020prqop/oTQEudzFk/gyQ686lp06HdLRt+O
|
27
|
+
HoQjTIab8vmfgIubjPdIRzokMfHbelvhLi+mQfWVghRhs2jpEfdXbL0w5nNw+trp
|
28
|
+
rO70Dw59hduDUOpgpxew+PLbs4vP1tb1QKPG+39C+PZtosbbf1fai0hqYV1txMCx
|
29
|
+
55akF+N8NbO6tpVDy6TMagqa10LfEpiQH6dvDHe/xdAqYOCrXKpmqzwu2PI=
|
30
|
+
-----END CERTIFICATE-----
|
31
|
+
|
32
|
+
date: 2009-03-08 00:00:00 +01:00
|
33
|
+
default_executable:
|
34
|
+
dependencies:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: user-choices
|
37
|
+
type: :development
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: "0"
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: sys-uname
|
47
|
+
type: :development
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: "0"
|
54
|
+
version:
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: hoe
|
57
|
+
type: :development
|
58
|
+
version_requirement:
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 1.8.2
|
64
|
+
version:
|
65
|
+
description: Bakker was created to help with simple task of renaming or copying files for quick backup purposes. For instance by creating a copy of a list of files while adding .bak to the copies filenames. Bakker gives you control over the extension to be added to or removed from the file and whether it should be moved or copied.
|
66
|
+
email:
|
67
|
+
- aef@raxys.net
|
68
|
+
executables:
|
69
|
+
- bakker
|
70
|
+
extensions: []
|
71
|
+
|
72
|
+
extra_rdoc_files:
|
73
|
+
- History.txt
|
74
|
+
- Manifest.txt
|
75
|
+
- README.txt
|
76
|
+
- COPYING.txt
|
77
|
+
files:
|
78
|
+
- History.txt
|
79
|
+
- Manifest.txt
|
80
|
+
- README.txt
|
81
|
+
- COPYING.txt
|
82
|
+
- Rakefile
|
83
|
+
- bin/bakker
|
84
|
+
- lib/bakker.rb
|
85
|
+
- spec/bakker_spec.rb
|
86
|
+
has_rdoc: true
|
87
|
+
homepage: "Project: https://rubyforge.org/projects/aef/"
|
88
|
+
post_install_message:
|
89
|
+
rdoc_options:
|
90
|
+
- --main
|
91
|
+
- README.txt
|
92
|
+
require_paths:
|
93
|
+
- lib
|
94
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: "0"
|
99
|
+
version:
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: "0"
|
105
|
+
version:
|
106
|
+
requirements: []
|
107
|
+
|
108
|
+
rubyforge_project: aef
|
109
|
+
rubygems_version: 1.3.1
|
110
|
+
signing_key:
|
111
|
+
specification_version: 2
|
112
|
+
summary: Bakker was created to help with simple task of renaming or copying files for quick backup purposes
|
113
|
+
test_files:
|
114
|
+
- spec/bakker_spec.rb
|
metadata.gz.sig
ADDED