zzap 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|