zzap 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/zzap +35 -33
- data/lib/zzap/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f00054e2287c34f5f6d9bdbcfc6808b2b1eee10a
|
4
|
+
data.tar.gz: aae42f645fa7d7919eea50398adf1ea4046aa7f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f1fb1c04e163141f67c6eb202adc6b3add2f071ebc236bd1ac5292b92cf6bfea77da63b745b455c770db0e3451007b682b1f2b8a2beaf8ac310a80e9f0f0261
|
7
|
+
data.tar.gz: 9f923b3d926ea7c5b01ccb2daa6d155f7aa5fa8d797ce7cce5565a08d356ea612f0272875a034aa97c668ec7184ac9e81b3f4a0181eb4eab0ea07040dfff59cb
|
data/exe/zzap
CHANGED
@@ -2,8 +2,7 @@
|
|
2
2
|
|
3
3
|
require "pathname"
|
4
4
|
require "open-uri"
|
5
|
-
require "
|
6
|
-
require "rubygems/package" # TarReader
|
5
|
+
require "zip"
|
7
6
|
require "net/http"
|
8
7
|
require "tempfile"
|
9
8
|
|
@@ -19,17 +18,17 @@ module Zzap
|
|
19
18
|
def run
|
20
19
|
abort("Target '#{target_name}' already exists! Aborting.") if File.exists?(target_name)
|
21
20
|
|
22
|
-
|
21
|
+
zipball = Tempfile.new("zzap")
|
23
22
|
|
24
|
-
fetch_source(
|
25
|
-
|
23
|
+
fetch_source(zipball)
|
24
|
+
extract_zipball(zipball)
|
26
25
|
perform_rename
|
27
26
|
perform_sub
|
28
27
|
|
29
28
|
ensure
|
30
|
-
if
|
31
|
-
|
32
|
-
|
29
|
+
if zipball
|
30
|
+
zipball.close
|
31
|
+
zipball.unlink
|
33
32
|
end
|
34
33
|
end
|
35
34
|
|
@@ -60,47 +59,50 @@ module Zzap
|
|
60
59
|
end
|
61
60
|
end
|
62
61
|
|
63
|
-
def fetch_source(
|
62
|
+
def fetch_source(zipball)
|
64
63
|
case source
|
65
64
|
when /\Ahttp/
|
66
65
|
warn "Fetching #{source}"
|
67
66
|
uri = URI.parse(source)
|
68
|
-
|
67
|
+
zipball.write(uri.read)
|
68
|
+
zipball.rewind
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
-
def
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
File.open(full_name, "wb") do |f|
|
86
|
-
f.write(entry.read)
|
87
|
-
end
|
88
|
-
File.chmod(entry.header.mode, full_name)
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
72
|
+
def extract_zipball(zipball)
|
73
|
+
require "zip"
|
74
|
+
|
75
|
+
Zip::File.open(zipball.path) do |zip_file|
|
76
|
+
root = zip_file.find(&:file?).name.split(File::SEPARATOR).shift
|
77
|
+
|
78
|
+
zip_file.each do |entry|
|
79
|
+
next unless entry.file?
|
80
|
+
|
81
|
+
full_name = Pathname(target_name) + Pathname(entry.name).sub(root + "/", "")
|
82
|
+
|
83
|
+
FileUtils.mkdir_p(File.dirname(full_name))
|
84
|
+
zip_file.extract(entry, full_name)
|
92
85
|
end
|
93
86
|
end
|
94
87
|
end
|
95
88
|
|
96
89
|
def self.run(argv)
|
97
|
-
target_name = ARGV[0] || abort(
|
98
|
-
repo = ARGV[1] || abort(
|
90
|
+
target_name = ARGV[0] || abort(usage)
|
91
|
+
repo = ARGV[1] || abort(usage)
|
99
92
|
|
100
|
-
source = "https://api.github.com/repos/#{repo}/
|
93
|
+
source = "https://api.github.com/repos/#{repo}/zipball"
|
101
94
|
|
102
95
|
new(target_name, source).run
|
103
96
|
end
|
97
|
+
|
98
|
+
def self.usage
|
99
|
+
<<~EOM
|
100
|
+
Usage: zzap target_name user_name/repo_name
|
101
|
+
|
102
|
+
target_name Snake cased folder name that will also be the application name
|
103
|
+
user_name/repo_name Github user and repository
|
104
|
+
EOM
|
105
|
+
end
|
104
106
|
end
|
105
107
|
end
|
106
108
|
|
data/lib/zzap/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zzap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Daniels
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rubyzip
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.2'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rubygems-tasks
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|