go4rake 1.4.3 → 1.5.7
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 +5 -5
- data/NOTICE +1 -1
- data/README.md +4 -2
- data/examples/go4rake.yml +2 -2
- data/lib/go4rake.rb +2 -0
- data/lib/go4rake/new.rb +35 -21
- metadata +23 -18
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: '029845c95d728b7ba040be28eeae6dc761e1aaca0410fc9ce64e42a18bdc8d38'
|
|
4
|
+
data.tar.gz: 45f524f451459ef570ab83a479b2760b50e775e3e77e2123045be2928d3ba543
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4fd85f9dcc4ad561c5c9747fa5e6d4f3baafdf95c2dace93ad81b3cfd68045bccbf2259090e0a341a5a89d2fdbf72a52ae5a61dbb488d444e967f1e0aa5c8a58
|
|
7
|
+
data.tar.gz: 020da2972138e0312e4cfdeef7071eaf61fe3db2c1f51fee217c48cdfaef1e25ee261b817b828145022f6cc131d12535e052ef00e22c66a0330e7c79759228a0
|
data/NOTICE
CHANGED
data/README.md
CHANGED
|
@@ -50,7 +50,9 @@ These files will be also included into the ZIP files:
|
|
|
50
50
|
Please note that:
|
|
51
51
|
|
|
52
52
|
* If `out` is specified, ZIP files will appear in the specified
|
|
53
|
-
directory; if not, they will be in
|
|
54
|
-
|
|
53
|
+
directory; if not, they will be in `~/Downloads`.
|
|
54
|
+
Prior to 1.5.2 the default value was `.`
|
|
55
|
+
* Also please note that current files with the same names as your targets are overwritten.
|
|
56
|
+
* If `files` are not specified, a `NOTICE` file will be included in ZIP
|
|
55
57
|
files, if it's found in the project directory
|
|
56
58
|
* `arch` is appended to the file name if `arch` is a list
|
data/examples/go4rake.yml
CHANGED
data/lib/go4rake.rb
CHANGED
data/lib/go4rake/new.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'rake/tasklib'
|
|
2
4
|
require 'yaml'
|
|
3
|
-
require 'zip'
|
|
4
5
|
require 'zip/filesystem'
|
|
5
6
|
|
|
6
7
|
# Rake tasks to cross-compile Go project and ZIP the binaries:
|
|
@@ -18,20 +19,31 @@ class Go4Rake < ::Rake::TaskLib
|
|
|
18
19
|
# Load configuration file and initialize Rake tasks for cross-compiling Go programs.
|
|
19
20
|
def initialize(yml = 'go4rake.yml')
|
|
20
21
|
begin
|
|
21
|
-
@
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
@yaml_file = yml
|
|
23
|
+
@config = YAML.load_file(@yaml_file)
|
|
24
|
+
@config['out'] ||= '~/Downloads' # Default to ~/Downloads, if 'out' is not specified.
|
|
25
|
+
|
|
26
|
+
init_tasks
|
|
27
|
+
rescue(Errno::ENOENT) => e
|
|
28
|
+
warn "WARNING: Skipping `build` and `zip` tasks: #{e}"
|
|
25
29
|
end
|
|
26
30
|
# `build`, `zip` and `clean` depend on config, `test` doesn't.
|
|
27
31
|
task_test
|
|
28
32
|
end
|
|
29
33
|
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
def init_tasks
|
|
37
|
+
task_build
|
|
38
|
+
task_zip
|
|
39
|
+
task_clean
|
|
40
|
+
end
|
|
41
|
+
|
|
30
42
|
# Initialize `build`, `zip` and `clean` tasks.
|
|
31
|
-
def
|
|
32
|
-
desc "Build this project for the platforms in #{
|
|
43
|
+
def task_build
|
|
44
|
+
desc "Build this project for the platforms in #{@yaml_file}"
|
|
33
45
|
task :build do
|
|
34
|
-
|
|
46
|
+
@config['platforms'].each { |os|
|
|
35
47
|
if os['arch'].respond_to?('each')
|
|
36
48
|
os['arch'].each { |arch|
|
|
37
49
|
build(os['name'], arch)
|
|
@@ -41,35 +53,35 @@ class Go4Rake < ::Rake::TaskLib
|
|
|
41
53
|
end
|
|
42
54
|
}
|
|
43
55
|
end
|
|
56
|
+
end
|
|
44
57
|
|
|
58
|
+
def task_zip
|
|
45
59
|
desc 'ZIP this project binaries'
|
|
46
|
-
task zip: [
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
cfg['platforms'].each { |os|
|
|
60
|
+
task zip: %i[build test] do
|
|
61
|
+
@config['platforms'].each { |os|
|
|
50
62
|
if os['arch'].respond_to?('each')
|
|
51
63
|
os['arch'].each { |arch|
|
|
52
|
-
zip(os['name'], arch,
|
|
64
|
+
zip(os['name'], arch, @config['out'], @config['files'],
|
|
53
65
|
os['zip'] ? "#{os['zip']}_#{arch}" : "#{os['name']}_#{arch}")
|
|
54
66
|
}
|
|
55
67
|
else
|
|
56
|
-
zip(os['name'], os['arch'],
|
|
68
|
+
zip(os['name'], os['arch'], @config['out'], @config['files'],
|
|
57
69
|
os['zip'] || "#{os['name']}_#{os['arch']}")
|
|
58
70
|
end
|
|
59
71
|
}
|
|
60
72
|
end
|
|
73
|
+
end
|
|
61
74
|
|
|
75
|
+
def task_clean
|
|
62
76
|
desc 'Delete ZIP files'
|
|
63
77
|
task :clean do
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
cfg['platforms'].each { |os|
|
|
78
|
+
@config['platforms'].each { |os|
|
|
67
79
|
if os['arch'].respond_to?('each')
|
|
68
80
|
os['arch'].each { |arch|
|
|
69
|
-
clean(
|
|
81
|
+
clean(@config['out'], os['zip'] ? "#{os['zip']}_#{arch}" : "#{os['name']}_#{arch}")
|
|
70
82
|
}
|
|
71
83
|
else
|
|
72
|
-
clean(
|
|
84
|
+
clean(@config['out'], os['zip'] || "#{os['name']}_#{os['arch']}")
|
|
73
85
|
end
|
|
74
86
|
}
|
|
75
87
|
end
|
|
@@ -105,8 +117,9 @@ class Go4Rake < ::Rake::TaskLib
|
|
|
105
117
|
# Zip the compiled files.
|
|
106
118
|
def zip(os, arch, dir, files, file)
|
|
107
119
|
setenv(os, arch)
|
|
108
|
-
bin = `go list -f '{{.Target}}'`.chomp
|
|
120
|
+
bin = `go list -f '{{.Target}}'`.chomp.delete_prefix("'").delete_suffix("'")
|
|
109
121
|
return unless bin
|
|
122
|
+
|
|
110
123
|
zip_file = File.expand_path(dir) + '/' + file + '.zip'
|
|
111
124
|
name = File.basename(bin)
|
|
112
125
|
unless files
|
|
@@ -124,7 +137,7 @@ class Go4Rake < ::Rake::TaskLib
|
|
|
124
137
|
|
|
125
138
|
# The executable file.
|
|
126
139
|
zip.add(name, bin)
|
|
127
|
-
zip.file.chmod(
|
|
140
|
+
zip.file.chmod(0o755, name)
|
|
128
141
|
end
|
|
129
142
|
puts("Wrote #{zip_file}")
|
|
130
143
|
end
|
|
@@ -133,6 +146,7 @@ class Go4Rake < ::Rake::TaskLib
|
|
|
133
146
|
def clean(dir, file)
|
|
134
147
|
zip_file = File.expand_path(dir) + '/' + file + '.zip'
|
|
135
148
|
return unless File.exist?(zip_file)
|
|
149
|
+
|
|
136
150
|
puts("Removing #{zip_file}")
|
|
137
151
|
File.delete(zip_file)
|
|
138
152
|
end
|
metadata
CHANGED
|
@@ -1,46 +1,52 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: go4rake
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.5.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vasily Korytov
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-07-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- -
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '10
|
|
19
|
+
version: '10'
|
|
20
|
+
- - "<"
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '14'
|
|
20
23
|
type: :runtime
|
|
21
24
|
prerelease: false
|
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
26
|
requirements:
|
|
24
|
-
- -
|
|
27
|
+
- - ">="
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '10'
|
|
30
|
+
- - "<"
|
|
25
31
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
32
|
+
version: '14'
|
|
27
33
|
- !ruby/object:Gem::Dependency
|
|
28
34
|
name: rubyzip
|
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
|
30
36
|
requirements:
|
|
31
|
-
- - ~>
|
|
37
|
+
- - "~>"
|
|
32
38
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
39
|
+
version: '2.0'
|
|
34
40
|
type: :runtime
|
|
35
41
|
prerelease: false
|
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
43
|
requirements:
|
|
38
|
-
- - ~>
|
|
44
|
+
- - "~>"
|
|
39
45
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
41
|
-
description:
|
|
42
|
-
programs
|
|
43
|
-
email:
|
|
46
|
+
version: '2.0'
|
|
47
|
+
description: "`build`, `zip, `test`` and `clean` tasks for cross-compilation of Go
|
|
48
|
+
programs"
|
|
49
|
+
email: v.korytov@outlook.com
|
|
44
50
|
executables: []
|
|
45
51
|
extensions: []
|
|
46
52
|
extra_rdoc_files: []
|
|
@@ -60,17 +66,16 @@ require_paths:
|
|
|
60
66
|
- lib
|
|
61
67
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
62
68
|
requirements:
|
|
63
|
-
- -
|
|
69
|
+
- - ">="
|
|
64
70
|
- !ruby/object:Gem::Version
|
|
65
|
-
version:
|
|
71
|
+
version: '2.5'
|
|
66
72
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
73
|
requirements:
|
|
68
|
-
- -
|
|
74
|
+
- - ">="
|
|
69
75
|
- !ruby/object:Gem::Version
|
|
70
76
|
version: '0'
|
|
71
77
|
requirements: []
|
|
72
|
-
|
|
73
|
-
rubygems_version: 2.0.14.1
|
|
78
|
+
rubygems_version: 3.1.2
|
|
74
79
|
signing_key:
|
|
75
80
|
specification_version: 4
|
|
76
81
|
summary: Rake helper for cross-compiling Go programs
|