pkgforge 0.5.4 → 0.6.1
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/lib/pkgforge/components/source.rb +36 -0
- data/lib/pkgforge/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c9a8dcac466a826b3d7926f4c5b5930e50e28f3
|
4
|
+
data.tar.gz: 32817d1917eb4985488c37a5062df172ca22cdb6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81248ac54a0149f0d8051cd6ee3bba711994cac8acfe70ac9deddbc57234aef0db65a5eed9f84437e42a55281a44702a35dc55aac2706add1a5ece0ec2d338ab
|
7
|
+
data.tar.gz: 91c8242baa70f2430a0f79c1637a1a000a64e799d2e297e8438fd216fe113b6ceb213b576e718004f5c3e09e0738c7a0272497bf44f9b7beda2c44160976a9db
|
@@ -1,13 +1,28 @@
|
|
1
1
|
require 'fileutils'
|
2
|
+
require 'open-uri'
|
2
3
|
|
3
4
|
module PkgForge
|
4
5
|
##
|
5
6
|
# Add source methods to Forge
|
6
7
|
class Forge
|
8
|
+
attr_writer :source
|
9
|
+
|
10
|
+
Contract None => HashOf[Symbol => Any]
|
11
|
+
def source
|
12
|
+
@source ||= { type: 'git' }
|
13
|
+
end
|
14
|
+
|
7
15
|
private
|
8
16
|
|
9
17
|
Contract None => nil
|
10
18
|
def prepare_source!
|
19
|
+
type_method = "#{source[:type]}_prepare_source"
|
20
|
+
return send(type_method) if respond_to?(type_method, true)
|
21
|
+
raise("Unknown source type: #{source[:type]}")
|
22
|
+
end
|
23
|
+
|
24
|
+
Contract None => nil
|
25
|
+
def git_prepare_source
|
11
26
|
dest = tmpdir(:build)
|
12
27
|
dest_git = File.join(dest, '.git')
|
13
28
|
dest_git_config = File.join(dest_git, 'config')
|
@@ -19,5 +34,26 @@ module PkgForge
|
|
19
34
|
File.open(dest_git_config, 'w') { |fh| fh << new_config }
|
20
35
|
nil
|
21
36
|
end
|
37
|
+
|
38
|
+
Contract None => nil
|
39
|
+
def tar_prepare_source
|
40
|
+
dest_file = tmpfile(:source_tar)
|
41
|
+
File.open(dest_file, 'wb') do |fh|
|
42
|
+
open(source[:url], 'rb') { |request| fh.write request.read }
|
43
|
+
end
|
44
|
+
run "tar -xf #{dest_file} --strip-components=1"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
module DSL
|
49
|
+
##
|
50
|
+
# Add source methods to Forge DSL
|
51
|
+
class Forge
|
52
|
+
Contract HashOf[Symbol => Any] => nil
|
53
|
+
def source(params)
|
54
|
+
@forge.source = params
|
55
|
+
nil
|
56
|
+
end
|
57
|
+
end
|
22
58
|
end
|
23
59
|
end
|
data/lib/pkgforge/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pkgforge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Les Aker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mercenary
|