central 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/central +1 -1
- data/lib/central.rb +28 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 562fdc501fa3f7d9b74a949f4d1ca5b62014dffbe0bc0c9e7906c834081b122a
|
4
|
+
data.tar.gz: e7972ea4c6e1f552252ea227aa5e5f298b6dbeb47ce07304b5d1030a7d6e6cc9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c20230fb3d4617e3386299dacc13bace1f909d079e3ce103cdb7fe0f5f7ea575225b90dd2ba926badc2154518209d8e74b2f21a79a4d186c61cdf0e4d1ce4723
|
7
|
+
data.tar.gz: 57f70c6468a316a1fc7a5d713d647dda9509350d03d484677a317935245196d2b30fdc3a35bc45c5ea407b9319238debcb1bb3136c83bebd2f41a47f2d2a0680
|
data/bin/central
CHANGED
data/lib/central.rb
CHANGED
@@ -321,6 +321,29 @@ def symlink(from, to)
|
|
321
321
|
end
|
322
322
|
end
|
323
323
|
|
324
|
+
# extract archive, supports tar, zip, 7z
|
325
|
+
def extract(path, todir)
|
326
|
+
path = abs(path)
|
327
|
+
todir = abs(todir)
|
328
|
+
unless file_exists?(path)
|
329
|
+
fail "Archive file #{path} does not exists"
|
330
|
+
end
|
331
|
+
mkdir(todir)
|
332
|
+
info 'Extracting archive', "#{path} → #{todir}"
|
333
|
+
exit_code = nil, output = nil
|
334
|
+
if path.end_with?('.zip')
|
335
|
+
exit_code, output, = shell("unzip \"#{path}\" -d \"#{todir}\" 2>&1")
|
336
|
+
elsif path.end_with?('.7z')
|
337
|
+
exit_code, output, = shell("7z x -o\"#{todir}\" \"#{path}\" 2>&1")
|
338
|
+
else
|
339
|
+
exit_code, output, = shell("tar -xf \"#{path}\" -C \"#{todir}\" 2>&1")
|
340
|
+
end
|
341
|
+
unless exit_code.success?
|
342
|
+
error output
|
343
|
+
fail "Couldn't extract archive", path
|
344
|
+
end
|
345
|
+
end
|
346
|
+
|
324
347
|
# git clone url into a path
|
325
348
|
def git(url, path, branch: nil, silent: true, depth: nil)
|
326
349
|
path = abs(path)
|
@@ -355,14 +378,14 @@ def git(url, path, branch: nil, silent: true, depth: nil)
|
|
355
378
|
end
|
356
379
|
|
357
380
|
# download url into a path using curl
|
358
|
-
def curl(url, path, content_length_check: false, verbose: false)
|
381
|
+
def curl(url, path, content_length_check: false, verbose: false, flags: '-L -s -S')
|
359
382
|
path = abs(path)
|
360
383
|
if content_length_check and file_exists?(path)
|
361
|
-
content_length = curl_headers(url, verbose: verbose)['content-length'].to_i
|
384
|
+
content_length = curl_headers(url, verbose: verbose, flags: flags)['content-length'].to_i
|
362
385
|
return if file_size(path) == content_length
|
363
386
|
end
|
364
387
|
info 'Downloading', "#{url} → #{path}"
|
365
|
-
exit_code, output, = shell("curl
|
388
|
+
exit_code, output, = shell("curl #{flags} \"#{url}\"",
|
366
389
|
verbose: verbose, silent: true)
|
367
390
|
unless exit_code.success?
|
368
391
|
error output
|
@@ -373,8 +396,8 @@ def curl(url, path, content_length_check: false, verbose: false)
|
|
373
396
|
end
|
374
397
|
|
375
398
|
# get url response headers as Hash using curl
|
376
|
-
def curl_headers(url, method: 'HEAD', verbose: false)
|
377
|
-
exit_code, output, = shell("curl -I -X #{method}
|
399
|
+
def curl_headers(url, method: 'HEAD', verbose: false, flags: '-L -s -S')
|
400
|
+
exit_code, output, = shell("curl -I -X #{method} #{flags} \"#{url}\"",
|
378
401
|
verbose: verbose, silent: true)
|
379
402
|
unless exit_code.success?
|
380
403
|
error output
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: central
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Geurkov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: central dotfile management system
|
14
14
|
email: d.geurkov@gmail.com
|