pkgforge 0.5.4 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4260709b4217a3ff5f12b01edca0e0bc3884167e
4
- data.tar.gz: 662cc785706417f2b4203e7c62b3edecf1896454
3
+ metadata.gz: 4c9a8dcac466a826b3d7926f4c5b5930e50e28f3
4
+ data.tar.gz: 32817d1917eb4985488c37a5062df172ca22cdb6
5
5
  SHA512:
6
- metadata.gz: 9604fb30f7eeda72e81f6cb2e439de04580266796219cab5952c854cba11ecdc18a02cccfa2710b705a57bdc51825603b2257cb3d9ce75400674bb9553dad84f
7
- data.tar.gz: c14597a78bff693257a339eaae9ad92110f6352e48dd40f690dbe5917ab058328265cf5836029a463a43a2a5aae18a737051e87950c14bdfc76f55b68a1c6e09
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
@@ -1,5 +1,5 @@
1
1
  ##
2
2
  # Declare version number
3
3
  module PkgForge
4
- VERSION = '0.5.4'.freeze
4
+ VERSION = '0.6.1'.freeze
5
5
  end
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.5.4
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-02 00:00:00.000000000 Z
11
+ date: 2016-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mercenary