repackage 1.0.24

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of repackage might be problematic. Click here for more details.

checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: ec9c0f02586eef84aa4758060ea1dee1a895ce29713d41b477918b87ee11e58f
4
+ data.tar.gz: 6ebb7dcb3250c19c8fc1557f82d33b10e365bc74d1dcf30fa1295f54e5b45fb8
5
+ SHA512:
6
+ metadata.gz: 1932d2906c67e3787790a59ac15a15b5abf9bf2b8daa16d609e60dd11ce84a7b5c3bde82cc8e4361bf120d45c3bc7c28908fde341429be333e742b128fe957d8
7
+ data.tar.gz: c9baca4f237f4191cc9af777e5bd5a8cfdd4ba6dc323027ab13a12c891abae136d95077acbf403fe1d4da16065e1739271ad1937b81a3a6d41436eed89a1b2f7
data/bin/repackager ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+
6
+ _ = Repackage.new(ARGV[0], ARGV[1], :def, ARGV[2])
7
+ _.run
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'repackage/constants.rb'
6
+ # =========================================================================== #
7
+ class Repackage
8
+
9
+ # ========================================================================= #
10
+ # === MY_TEMP
11
+ # ========================================================================= #
12
+ if ENV['MY_TEMP']
13
+ EXTRACT_TO = ENV['MY_TEMP'].to_s+'/' # Denote where to extract the stuff to.
14
+ else
15
+ EXTRACT_TO = '/tmp/'
16
+ end
17
+
18
+ # ========================================================================= #
19
+ # === SHALL_WE_DELETE_OLD_SOURCE
20
+ # ========================================================================= #
21
+ SHALL_WE_DELETE_OLD_SOURCE = true # Remove the old source.
22
+
23
+ # ========================================================================= #
24
+ # === DEFAULT_TARGET_FORMAT_TYPE
25
+ # ========================================================================= #
26
+ DEFAULT_TARGET_FORMAT_TYPE = '.tar.xz' # '.tar.bz2' # The target format comes here.
27
+
28
+ # ========================================================================= #
29
+ # === CREATE_TAR_GZ
30
+ # ========================================================================= #
31
+ CREATE_TAR_GZ = 'tar cfvz ' # Command to create .tar.gz archives
32
+
33
+ # ========================================================================= #
34
+ # === CREATE_TAR_BZ2
35
+ # ========================================================================= #
36
+ CREATE_TAR_BZ2 = 'tar cfvj ' # Command to create .tar.bz2 archives
37
+
38
+ # ========================================================================= #
39
+ # === CREATE_ZIP
40
+ # ========================================================================= #
41
+ CREATE_ZIP = 'zip -r ' # Create Zip Archive
42
+
43
+ # ========================================================================= #
44
+ # === LAST_DOWNLOADED_FILE
45
+ # ========================================================================= #
46
+ begin
47
+ require 'wget'
48
+ LAST_DOWNLOADED_FILE = Wget.download_to?
49
+ rescue LoadError
50
+ LAST_DOWNLOADED_FILE = ENV['HOME'].to_s+'/LAST_DOWNLOADED_FILE.md'
51
+ end
52
+
53
+ end
@@ -0,0 +1,480 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === Repackage
6
+ #
7
+ # The purpose of this class is to repackage a .tar.gz file into
8
+ # a .tar.bz2 file or into another format.
9
+ #
10
+ # The default target format is to .tar.xz or more accurately, to
11
+ # whatever is in the constant DEFAULT_TARGET_FORMAT_TYPE.
12
+ #
13
+ # Historically this class was first created at the end of August 2005,
14
+ # so it is a fairly "old" class. Over the years it has been extended
15
+ # to allow for more flexibility.
16
+ # =========================================================================== #
17
+ # require 'repackage/repackage.rb'
18
+ # =========================================================================== #
19
+ require 'fileutils'
20
+ require 'repackage/constants.rb'
21
+ require 'repackage/version/version.rb'
22
+
23
+ class Repackage
24
+
25
+ begin
26
+ require 'extracter'
27
+ rescue LoadError; end
28
+
29
+ begin
30
+ require 'colours'
31
+ include Colours
32
+ rescue LoadError; end
33
+
34
+ begin
35
+ require 'opn'
36
+ rescue LoadError; end
37
+
38
+ begin
39
+ require 'remove_file_suffix'
40
+ rescue LoadError; end
41
+
42
+ begin
43
+ require 'totarxz'
44
+ rescue LoadError
45
+ puts 'totarxz is not installed - please consider installing it.'
46
+ end
47
+
48
+ # ========================================================================= #
49
+ # Constant definitions come next.
50
+ # ========================================================================= #
51
+
52
+ # ========================================================================= #
53
+ # === initialize
54
+ #
55
+ # The second argument, `optional_format_type`, specifies the
56
+ # registered target format type.
57
+ # ========================================================================= #
58
+ def initialize(
59
+ i,
60
+ optional_format_type = 'tar.xz',
61
+ optional_start_dir = nil,
62
+ optional_keep_archive = nil,
63
+ optional_run_already = false
64
+ )
65
+ register_sigint
66
+ reset
67
+ set_start_dir(optional_start_dir)
68
+ set_package_and_package_name(i)
69
+ set_target_format_type(
70
+ optional_format_type
71
+ )
72
+ consider_refusal_of_repackaging_action
73
+ determine_file_size
74
+ set_shall_we_delete_old_source(
75
+ optional_keep_archive
76
+ )
77
+ set_extract_to
78
+ # ======================================================================= #
79
+ # === Handle given blocks next
80
+ # ======================================================================= #
81
+ if block_given?
82
+ yielded = yield
83
+ case yielded
84
+ when :run_already
85
+ optional_run_already = true
86
+ end
87
+ end
88
+ run if optional_run_already
89
+ end
90
+
91
+ # ========================================================================= #
92
+ # === reset (reset tag)
93
+ # ========================================================================= #
94
+ def reset
95
+ # ======================================================================= #
96
+ # === @file_size
97
+ # ======================================================================= #
98
+ @file_size = 0
99
+ # ======================================================================= #
100
+ # === @package_full_name
101
+ # ======================================================================= #
102
+ @package_full_name = ''.dup
103
+ set_start_dir(Dir.pwd)
104
+ end
105
+
106
+ # ========================================================================= #
107
+ # === register_sigint
108
+ # ========================================================================= #
109
+ def register_sigint
110
+ Signal.trap('SIGINT') { exit }
111
+ end
112
+
113
+ # ========================================================================= #
114
+ # === set_package_and_package_name
115
+ #
116
+ # If the input is nil, we'll randomly grab any file from the currenty
117
+ # directory.
118
+ # ========================================================================= #
119
+ def set_package_and_package_name(
120
+ i = @package
121
+ )
122
+ case i
123
+ when nil,'+'
124
+ i = Dir['*'].reject {|entry| File.directory? entry }.sample
125
+ end unless File.exist? i.to_s
126
+ set_package(i)
127
+ set_package_name
128
+ end
129
+
130
+ # ========================================================================= #
131
+ # === consider_refusal_of_repackaging_action
132
+ # ========================================================================= #
133
+ def consider_refusal_of_repackaging_action
134
+ if @package.include? @target_format_type
135
+ opn
136
+ e "We can not repackage #{simp(@package)}"\
137
+ " into the same target archive format ("\
138
+ "#{sfancy(@target_format_type)})."
139
+ exit
140
+ end
141
+ end
142
+
143
+ # ========================================================================= #
144
+ # === set_target_format_type
145
+ #
146
+ # We will repackage to this format here.
147
+ # ========================================================================= #
148
+ def set_target_format_type(
149
+ i = '.tar.xz'
150
+ )
151
+ i = i.downcase if i # Only want it downcase.
152
+ case i # case tag
153
+ # ======================================================================= #
154
+ # === .tar.xz
155
+ # ======================================================================= #
156
+ when 'xz','tar.xz'
157
+ i = '.tar.xz'
158
+ # ======================================================================= #
159
+ # === .tar.bz2
160
+ # ======================================================================= #
161
+ when 'bz2',
162
+ '.tar.bz2'
163
+ i = '.tar.bz2'
164
+ # ======================================================================= #
165
+ # === .tar.gz
166
+ # ======================================================================= #
167
+ when 'targz',
168
+ 'gz',
169
+ 'tar.gz'
170
+ i = '.tar.gz'
171
+ # ======================================================================= #
172
+ # === nil
173
+ # ======================================================================= #
174
+ when nil # Assume a default here.
175
+ i = DEFAULT_TARGET_FORMAT_TYPE
176
+ else
177
+ # warn 'Did not find registered format type.'
178
+ end
179
+ @target_format_type = i
180
+ end; alias format= set_target_format_type # === format=
181
+
182
+ # ========================================================================= #
183
+ # === determine_file_size
184
+ # ========================================================================= #
185
+ def determine_file_size
186
+ if File.exist? @package
187
+ @file_size = File.stat(@package).size? # Obtain some information.
188
+ end
189
+ end
190
+
191
+ # ========================================================================= #
192
+ # === set_start_dir
193
+ # ========================================================================= #
194
+ def set_start_dir(i = Dir.pwd)
195
+ i = Dir.pwd if i.nil?
196
+ i = Dir.pwd if i.to_s == 'def'
197
+ i << '/' unless i.end_with? '/' # Append a / properly.
198
+ @start_dir = i if i
199
+ end
200
+
201
+ # ========================================================================= #
202
+ # === set_shall_we_delete_old_source
203
+ # ========================================================================= #
204
+ def set_shall_we_delete_old_source(i = SHALL_WE_DELETE_OLD_SOURCE)
205
+ i = SHALL_WE_DELETE_OLD_SOURCE if i.nil?
206
+ @shall_we_delete_old_source = i
207
+ end
208
+
209
+ # ========================================================================= #
210
+ # === set_package_name
211
+ # ========================================================================= #
212
+ def set_package_name(i = @package) # We store the name of the package WITHOUT extension here.
213
+ i = i.to_s
214
+ i = File.basename(i) if i.include? '/'
215
+ @package_name = remove_extension(i)
216
+ end
217
+
218
+ # ========================================================================= #
219
+ # === set_extract_to
220
+ #
221
+ # Set the @extract_to variable here.
222
+ # ========================================================================= #
223
+ def set_extract_to(i = EXTRACT_TO)
224
+ i = EXTRACT_TO if i.nil?
225
+ i = i.to_s.dup
226
+ i = '/tmp/' if i.empty? # Hardcoded in this case.
227
+ i << '/' unless i.end_with? '/' # A directory has a trailing /.
228
+ @extract_to = i
229
+ end
230
+
231
+ # ========================================================================= #
232
+ # === extract (extract tag)
233
+ #
234
+ # Extract it here. Before we do so, though, we must check if the target
235
+ # does not exist yet.
236
+ # ========================================================================= #
237
+ def extract(what = @package)
238
+ remove_extracted_data
239
+ Extracter.extract_what_to(what, @extract_to)
240
+ end
241
+
242
+ # ========================================================================= #
243
+ # === change_dir_to (cd tag)
244
+ # ========================================================================= #
245
+ def change_dir_to(
246
+ where_to = @extract_to
247
+ )
248
+ Dir.chdir(where_to)
249
+ end; alias cd change_dir_to # === cd
250
+
251
+ # ======================================================================= #
252
+ # === file_name
253
+ # ======================================================================= #
254
+ def file_name # This method returns the filename.
255
+ return File.basename(__FILE__)+': '
256
+ end
257
+
258
+ # ======================================================================= #
259
+ # === cliner
260
+ # ======================================================================= #
261
+ def cliner
262
+ e ('=' * 80)
263
+ end
264
+
265
+ # ========================================================================= #
266
+ # === check_if_this_target_exists_or_not
267
+ # ========================================================================= #
268
+ def check_if_this_target_exists_or_not(i = @package) # If it does not exist, we exit here.
269
+ cliner
270
+ if File.exist? i
271
+ e "Good, the File `#{sfile(i)}` exists. We will try"
272
+ e 'to repackage it into `'+simportant(@target_format_type)+'` format type.'
273
+ e 'We will extract into the directory '+sdir(@extract_to)+'.'
274
+ set_package_and_package_name(i)
275
+ else # Ok, file does not exist. Let's check if we have a number:
276
+ if i =~ /^\d$/ # If input is a (positional) number like "3"
277
+ _ = Dir['*'].sort[ (i.to_i - 1) ]
278
+ set_package_and_package_name _
279
+ check_if_this_target_exists_or_not # @package
280
+ else
281
+ # Try a glob first before giving up.
282
+ _ = try_glob(i)
283
+ if _.empty?
284
+ warn_about_missing_file_then_exit
285
+ else
286
+ check_if_this_target_exists_or_not(_.first)
287
+ end
288
+ end
289
+ end
290
+ cliner
291
+ end; alias check_if_target_exists_or_not check_if_this_target_exists_or_not # === check_if_target_exists_or_not
292
+
293
+ # ========================================================================= #
294
+ # === try_glob
295
+ #
296
+ # Try a glob with this method.
297
+ # ========================================================================= #
298
+ def try_glob(i)
299
+ return Dir[i+'*']
300
+ end
301
+
302
+ # ========================================================================= #
303
+ # === move_package_to (move tag)
304
+ #
305
+ # Use this method to move a package to a new location.
306
+ # ========================================================================= #
307
+ def move_package_to(
308
+ where_to = @start_dir
309
+ )
310
+ if File.exist? @package_full_name
311
+ e 'Moving the package at '+sfile(@package_full_name)+
312
+ ' to '+sfile(where_to)+' next.'
313
+ FileUtils.mv(@package_full_name, where_to)
314
+ else
315
+ e 'No file at '+sfile(@package_full_name)+' exists, thus we '\
316
+ 'can not move anything.'
317
+ end
318
+ end
319
+
320
+ # ========================================================================= #
321
+ # === remove_old_package
322
+ #
323
+ # Only call this when we are sure to remove the old source. I recommend
324
+ # to delete the old source. Of course we must make sure to delete the
325
+ # right package.
326
+ # ========================================================================= #
327
+ def remove_old_package
328
+ e "Removing the old package `#{sfile(@package)}` next."
329
+ remove(@package)
330
+ end
331
+
332
+ # ========================================================================= #
333
+ # === remove
334
+ #
335
+ # Remove a file or a directory with this method.
336
+ # ========================================================================= #
337
+ def remove(i)
338
+ if File.directory?(i)
339
+ FileUtils.rm_rf(i) unless i.strip == '/'
340
+ elsif File.file?(i)
341
+ File.delete(i)
342
+ end
343
+ end
344
+
345
+ # ========================================================================= #
346
+ # === target_format?
347
+ # ========================================================================= #
348
+ def target_format?
349
+ @target_format_type
350
+ end
351
+
352
+ # ========================================================================= #
353
+ # === remove_extracted_data
354
+ # ========================================================================= #
355
+ def remove_extracted_data # remove the extracted archive again.
356
+ _ = "#{@extract_to}/#{remove_extension(@package)}"
357
+ remove(_) if File.exist? _ # We remove a possibly-existing, extracted directory first.
358
+ end
359
+
360
+ # ========================================================================= #
361
+ # === run_sys_cmd
362
+ # ========================================================================= #
363
+ def run_sys_cmd(_)
364
+ e _; `#{_}`
365
+ end
366
+
367
+ # ========================================================================= #
368
+ # === remove_extension
369
+ # ========================================================================= #
370
+ def remove_extension(i) # This will remove all extensions.
371
+ return RemoveFileSuffix[i]
372
+ end
373
+
374
+ # ========================================================================= #
375
+ # === extract_to?
376
+ #
377
+ # Defaults to /Depot/Temp.
378
+ # ========================================================================= #
379
+ def extract_to?
380
+ @extract_to
381
+ end; alias extract_to extract_to? # === extract_to
382
+
383
+ # ========================================================================= #
384
+ # === warn_about_missing_file_then_exit
385
+ # ========================================================================= #
386
+ def warn_about_missing_file_then_exit
387
+ e swarn(file_name+'The file `'+sfile(@package))+swarn('` does not exist.')
388
+ raise 'File does not exist. Can not continue.' # also send a specific error here.
389
+ end
390
+
391
+ # ========================================================================= #
392
+ # === set_packages
393
+ # ========================================================================= #
394
+ def set_package(i) # Use this method to set @package.
395
+ # i = Dir.pwd+'/'+i unless i.include? '/'
396
+ if i.nil? # Since May 2013 we try to fetch a random file from a list.
397
+ _ = Dir['*'].reject {|entry| File.directory? entry}
398
+ i = _.first if _.size == 1 # if we only have one entry, continue here.
399
+ end
400
+ case i
401
+ when 'LAST','LAST_DOWNLOADED','--last','last','-l'
402
+ i = File.readlines(LAST_DOWNLOADED_FILE).first
403
+ # ===================================================================== #
404
+ # The format of the file has changed a bit. We have to check
405
+ # whether it includes a '#' character. If so then we discard
406
+ # all that comes after said '#' token.
407
+ # ===================================================================== #
408
+ if i.include? '#'
409
+ i = i[0..(i.index('#')-1)].strip
410
+ end
411
+ end
412
+ @package = i
413
+ end
414
+
415
+ # ========================================================================= #
416
+ # === package_this_directory
417
+ #
418
+ # This will also set @package_full_name.
419
+ # ========================================================================= #
420
+ def package_this_directory(d) # The input is the file name.
421
+ if File.exist? d # This checks in TEMP_DIR.
422
+ @package_full_name = d+@target_format_type # Assign to @package_full_name.
423
+ case @target_format_type # Now act on @target_format_type.
424
+ when 'xz','.tar.xz'
425
+ ToTarXz.new(d)
426
+ when '.tar.bz2','tar.bz2','tarbz2','totarbz2','tbz2'
427
+ run_sys_cmd CREATE_TAR_BZ2+@package_full_name+' '+d
428
+ else
429
+ e file_name+swarn('Not found a registered action for `')+
430
+ simp(@target_format_type)+swarn('`!')
431
+ end
432
+ # tar cfvj #{@this_directory}.tar.bz2 #{@this_directory}"
433
+ else
434
+ opn
435
+ e swarn 'But no file called `'+
436
+ sfile(d)+swarn('` exists in `')+
437
+ sdir(Dir.pwd)+swarn('`.')
438
+ end
439
+ end
440
+
441
+ # ========================================================================= #
442
+ # === repackage_data
443
+ #
444
+ # Bundled the methods together. Main powerhorse method. Call it when
445
+ # you are ready to go.
446
+ # ========================================================================= #
447
+ def repackage_data
448
+ check_if_this_target_exists_or_not
449
+ extract
450
+ cd @extract_to # Ideally, we should not change directory ever.
451
+ package_this_directory @package_name
452
+ move_package_to(@start_dir)
453
+ cd @start_dir
454
+ if @shall_we_delete_old_source
455
+ remove_old_package
456
+ remove_extracted_data
457
+ end
458
+ end
459
+
460
+ # ========================================================================= #
461
+ # === run (run tag)
462
+ # ========================================================================= #
463
+ def run
464
+ repackage_data
465
+ end
466
+
467
+ end
468
+
469
+ if __FILE__ == $PROGRAM_NAME
470
+ _ = Repackage.new(ARGV[0], ARGV[1], :def, ARGV[2])
471
+ _.run
472
+ end
473
+ # =========================================================================== #
474
+ # Usage examples with full syntax:
475
+ # rer filename.tar.gz format_type
476
+ # rer xpdf-3.00.tar.gz gzip
477
+ # rer AUD_MusicBox-020.tgz
478
+ # rer AUD_MusicBox-020.tgz
479
+ # rer
480
+ # =========================================================================== #
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'repackage/version/version.rb'
6
+ # =========================================================================== #
7
+ class Repackage
8
+
9
+ # =========================================================================== #
10
+ # === VERSION
11
+ # =========================================================================== #
12
+ VERSION = '1.0.24'
13
+
14
+ # =========================================================================== #
15
+ # === LAST_UPDATE
16
+ # =========================================================================== #
17
+ LAST_UPDATE = '01.04.2021'
18
+
19
+ end
data/lib/repackage.rb ADDED
@@ -0,0 +1 @@
1
+ require 'repackage/repackage.rb'
data/repackage.gemspec ADDED
@@ -0,0 +1,62 @@
1
+ # =========================================================================== #
2
+ # Gemspec for Project Repackage.
3
+ # =========================================================================== #
4
+ require 'repackage/version/version.rb'
5
+
6
+ Gem::Specification.new { |s|
7
+
8
+ s.name = 'repackage'
9
+ s.version = Repackage::VERSION
10
+ s.date = Time.now.strftime('%Y-%m-%d')
11
+
12
+ s.summary = <<-EOF
13
+
14
+ This library is called repackage. It allows you to
15
+ repackage an archive, i.e. .tar.gz to .tar.xz format.
16
+
17
+ If the target (the input you give to this class) can
18
+ not be found, we will try a glob before giving up
19
+ first, since version 1.0.2.
20
+
21
+ If you have specific suggestions to make this gem more
22
+ useful for others, please drop me an email at:
23
+
24
+ shevegen@gmail.com
25
+
26
+ Thank you.
27
+
28
+ EOF
29
+
30
+ s.description = <<-EOF
31
+
32
+ This library is called repackage. It allows you to
33
+ repackage an archive, i.e. .tar.gz to .tar.xz format.
34
+
35
+ Since as of April 2021 (not an april joke), the
36
+ licence is now LGPL-2.1 rather than GPL-2.x. It
37
+ was considered to simplify integrating LGPL
38
+ into other projects rather than GPL.
39
+
40
+ EOF
41
+
42
+ s.extra_rdoc_files = %w()
43
+
44
+ s.authors = ['Robert A. Heiler']
45
+ s.email = 'shevegen@gmail.com'
46
+ s.files = Dir['**/*']
47
+ s.licenses = 'LGPL-2.1'
48
+
49
+ s.homepage = 'http://rubygems.org/gems/repackage'
50
+ s.executables = Dir['bin/*'].map { |f| File.basename(f) }
51
+
52
+ s.required_ruby_version = '>= '+RUBY_VERSION
53
+ s.required_rubygems_version = '>= '+Gem::VERSION
54
+ s.rubygems_version = '>= '+Gem::VERSION
55
+
56
+ s.add_dependency 'colours'
57
+ s.add_dependency 'extracter'
58
+ s.add_dependency 'opn'
59
+ s.add_dependency 'remove_file_suffix'
60
+ s.add_dependency 'totarxz'
61
+
62
+ }
metadata ADDED
@@ -0,0 +1,126 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: repackage
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.24
5
+ platform: ruby
6
+ authors:
7
+ - Robert A. Heiler
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-04-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: colours
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: extracter
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: opn
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: remove_file_suffix
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: totarxz
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: "\nThis library is called repackage. It allows you to \nrepackage an
84
+ archive, i.e. .tar.gz to .tar.xz format.\n\nSince as of April 2021 (not an april
85
+ joke), the\nlicence is now LGPL-2.1 rather than GPL-2.x. It\nwas considered to simplify
86
+ integrating LGPL\ninto other projects rather than GPL.\n\n"
87
+ email: shevegen@gmail.com
88
+ executables:
89
+ - repackager
90
+ extensions: []
91
+ extra_rdoc_files: []
92
+ files:
93
+ - bin/repackager
94
+ - lib/repackage.rb
95
+ - lib/repackage/constants.rb
96
+ - lib/repackage/repackage.rb
97
+ - lib/repackage/version/version.rb
98
+ - repackage.gemspec
99
+ homepage: http://rubygems.org/gems/repackage
100
+ licenses:
101
+ - LGPL-2.1
102
+ metadata: {}
103
+ post_install_message:
104
+ rdoc_options: []
105
+ require_paths:
106
+ - lib
107
+ required_ruby_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: 3.0.0
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 3.2.15
117
+ requirements: []
118
+ rubygems_version: 3.2.15
119
+ signing_key:
120
+ specification_version: 4
121
+ summary: 'This library is called repackage. It allows you to repackage an archive,
122
+ i.e. .tar.gz to .tar.xz format. If the target (the input you give to this class)
123
+ can not be found, we will try a glob before giving up first, since version 1.0.2. If
124
+ you have specific suggestions to make this gem more useful for others, please drop
125
+ me an email at: shevegen@gmail.com Thank you.'
126
+ test_files: []