go4rake 1.0.7 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/go4rake.gemspec +11 -10
  3. data/lib/go4rake/new.rb +22 -22
  4. metadata +17 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 53f419be04c75a9148662310ac86bee3e84bfc52
4
- data.tar.gz: 9d6dc125f8f4086ddefa52a670e56bd18652163f
3
+ metadata.gz: 6f771ae426febcac53569eb33ee53a1d8b51292f
4
+ data.tar.gz: 2b7d73848d395c4b9db4517b18f380c9b5bcea79
5
5
  SHA512:
6
- metadata.gz: b682ae30deb1f68db4723507858090767eb0eb80545104465bf9c970fbc5d7b350e1c420c6ed703e6deb2f8a88bd62528ae1ce5a6fe79e5f39044db08a7f3075
7
- data.tar.gz: 7f8971e939979192fecca957a8a6bd02cefcaac830479c4a3bbc72b9160be7ae01c137e8420a3ad5b4f0844f6d01f36a6b2cfbd4bb33b67ded8e6b4fdb6fb70a
6
+ metadata.gz: 6a2d67a7044c63c2ee863a5f715e08a3806f710c1db140f1bdded1237cfe3fa348d538054c2d7e7327041808edf9794fcf63ddebe0fb326bc22a4221b476da40
7
+ data.tar.gz: 2efc6c0329bf83a17c2162e42630e8fb42a3dc748e83c593d317f897686af1db869396114f10b90d6f57faacb8780f5c0609da3fd19885f417f72adf3efe71ce
data/go4rake.gemspec CHANGED
@@ -1,12 +1,13 @@
1
1
  Gem::Specification.new do |s|
2
- s.name = 'go4rake'
3
- s.version = '1.0.7'
4
- s.license = 'Apache-2.0'
5
- s.summary = 'go4rake is a Rake helper for cross-compiling Go programs'
6
- s.description = '`build`, `test` and `zip` tasks for cross-compilation of Go programs'
7
- s.author = 'Vasily Korytov'
8
- s.email = 'vasily.korytov@yahoo.com'
9
- s.files = ['LICENSE.txt', 'README.md', 'examples/go4rake.yml',
10
- 'go4rake.gemspec', 'lib/go4rake.rb', 'lib/go4rake/new.rb']
11
- s.homepage = 'https://github.com/chillum/go4rake'
2
+ s.name = 'go4rake'
3
+ s.version = '1.0.8'
4
+ s.license = 'Apache-2.0'
5
+ s.summary = 'go4rake is a Rake helper for cross-compiling Go programs'
6
+ s.description = '`build`, `test` and `zip` tasks for cross-compilation of Go programs'
7
+ s.homepage = 'https://github.com/chillum/go4rake'
8
+ s.author = 'Vasily Korytov'
9
+ s.email = 'vasily.korytov@yahoo.com'
10
+ s.files = ['LICENSE.txt', 'README.md', 'examples/go4rake.yml',
11
+ 'go4rake.gemspec', 'lib/go4rake.rb', 'lib/go4rake/new.rb']
12
+ s.add_dependency 'rake', '~> 10.0'
12
13
  end
data/lib/go4rake/new.rb CHANGED
@@ -26,20 +26,21 @@ require 'yaml'
26
26
  #
27
27
  # Offline copies of README and example config are also included in this gem.
28
28
  class Go4Rake < ::Rake::TaskLib
29
- attr_reader :yml
30
29
  # Initialize Rake tasks for cross-compiling Go programs.
31
30
  def initialize(yml = 'go4rake.yml')
32
31
  # `build` and `zip` depend on config, `test` doesn't.
33
32
  begin
34
- @config = YAML.load_file yml
33
+ @config = YAML.load_file(yml)
35
34
 
36
35
  desc "Build this project for the platforms in #{yml}"
37
36
  task :build do
38
37
  @config['platforms'].each { |os|
39
38
  if os['arch'].respond_to?('each')
40
- os['arch'].each { |arch| build os['name'], arch }
39
+ os['arch'].each { |arch|
40
+ build(os['name'], arch)
41
+ }
41
42
  else
42
- build os['name'], os['arch']
43
+ build(os['name'], os['arch'])
43
44
  end
44
45
  }
45
46
  end
@@ -50,47 +51,46 @@ class Go4Rake < ::Rake::TaskLib
50
51
 
51
52
  @config['platforms'].each { |os|
52
53
  if os['arch'].respond_to?('each')
53
- os['arch'].each { |arch| zip os['name'], arch, @config['out'], os['zip'] ? \
54
- "#{os['zip']}_#{arch}" : "#{os['name']}_#{arch}" }
54
+ os['arch'].each { |arch|
55
+ zip(os['name'], arch, @config['out'], os['zip'] ? "#{os['zip']}_#{arch}" : "#{os['name']}_#{arch}")
56
+ }
55
57
  else
56
- zip os['name'], os['arch'], @config['out'], os['zip'] || "#{os['name']}_#{os['arch']}"
58
+ zip(os['name'], os['arch'], @config['out'], os['zip'] || "#{os['name']}_#{os['arch']}")
57
59
  end
58
60
  }
59
61
  end
60
62
  rescue => e
61
- $stderr.puts "WARNING: Skipping `build` and `zip` tasks: #{e}"
63
+ $stderr.puts("WARNING: Skipping `build` and `zip` tasks: #{e}")
62
64
  end
63
65
 
64
66
  desc 'Run `go test` for the native platform'
65
67
  task :test do
66
- setenv nil, nil
67
- system 'go test' or die 'Tests'
68
+ setenv(nil, nil)
69
+ system('go test') || die('Tests')
68
70
  end
69
71
  end
70
72
 
71
73
  # Sets GOARCH and GOOS.
72
- def setenv os, arch
74
+ def setenv(os, arch)
73
75
  ENV['GOARCH'] = arch ? arch.to_s : nil
74
76
  ENV['GOOS'] = os
75
77
  end
76
78
 
77
79
  # Exits with an error.
78
- def die task
79
- abort "#{task} failed. Exiting" # Rake returns 1 in something fails.
80
+ def die(task)
81
+ abort("#{task} failed. Exiting") # Rake returns 1 in something fails.
80
82
  end
81
83
 
82
84
  # Executes `go install` for the specified os/arch.
83
- def build os, arch
84
- setenv os, arch
85
- puts "Building #{os}_#{arch}"
86
- system 'go install' or die 'Build'
85
+ def build(os, arch)
86
+ setenv(os, arch)
87
+ puts("Building #{os}_#{arch}")
88
+ system('go install') || die('Build')
87
89
  end
88
90
 
89
91
  # Zips the compiled files.
90
- def zip os, arch, dir, file
91
- setenv os, arch
92
- if system "zip -qj #{dir}/#{file}.zip #{`go list -f '{{.Target}}'`}"
93
- puts "Wrote #{dir}/#{file}.zip"
94
- end
92
+ def zip(os, arch, dir, file)
93
+ setenv(os, arch)
94
+ system("zip -qj #{dir}/#{file}.zip #{`go list -f '{{.Target}}'`}") && puts("Wrote #{dir}/#{file}.zip")
95
95
  end
96
96
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: go4rake
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vasily Korytov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-09 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2014-11-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '10.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '10.0'
13
27
  description: "`build`, `test` and `zip` tasks for cross-compilation of Go programs"
14
28
  email: vasily.korytov@yahoo.com
15
29
  executables: []