go4rake 1.2 → 1.3

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/README.md +3 -2
  3. data/lib/go4rake/new.rb +25 -1
  4. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a8394666cc2650a0c825465c248c1338a622554f
4
- data.tar.gz: f8d8562b346f4bfd8b6f9ef79496cb6abf060bdd
3
+ metadata.gz: 926c729186dfe44a389cf97c4f2758bcb2804f77
4
+ data.tar.gz: 6cd2ca2a1104937fe52a006a71cc3889887dc365
5
5
  SHA512:
6
- metadata.gz: 60e0025bb32e1df49f6b4bff3b777980ea061001e63b8a0c42e3a24423eb6c51556af4bf71cd78054bad16e8c13245cf6d3c1c1b92cdf37b7e7bb031c0f3f727
7
- data.tar.gz: 3301f898c776401f2d57c5562807d0b4c9e67a652e2d72642adba9de8d7914a8901c737e479fdff39094d2a5cbac48a377418774f11f9cac795b0e20ab2240e5
6
+ metadata.gz: 8fc3b58632cd5ec4aceb9c8b87f74277b539532815534fc3cea76dc15b1462a6b8c01f27e8a8581e9333484104765f5ebc94a319e7c6f366f1b46ef05e0d3e31
7
+ data.tar.gz: 01563a5f1f53d6e43821c244cd88de4a3802035a064da5411cd31fc2c4bd69c912adc7da5c0303a4d0c8fe7c274b21e43983fa21852cf1c58371691cd45db047
data/README.md CHANGED
@@ -5,6 +5,7 @@ This gem provides the following tasks:
5
5
  * `rake build` for cross-compiling for the specified architectures
6
6
  * `rake zip` command for making ZIP files that contain binary builds
7
7
  * `rake test` for running tests for the native architecture
8
+ * `rake clean` for deleting the created ZIP files
8
9
 
9
10
  `zip` depends on `build` and `test` (in that order).
10
11
 
@@ -27,7 +28,7 @@ The reason only the native runtime is supported in `test` is that `go test` for
27
28
 
28
29
  ### Configuration
29
30
 
30
- `zip` and `build` tasks expect a YAML config, `go4rake.yml`. Say, we
31
+ `zip`, `build` and `clean` tasks expect a YAML config, `go4rake.yml`. Say, we
31
32
  have [this config](https://github.com/chillum/go4rake/blob/master/examples/go4rake.yml).
32
33
 
33
34
  This way, you run `rake zip` and you get the following ZIP files
@@ -54,7 +55,7 @@ Please note that:
54
55
 
55
56
  * If `out` is specified, ZIP files will appear in the specified
56
57
  directory; if not, they will be in current directory
57
- * if `files` it not specified, a `NOTICE` file will be included in ZIP
58
+ * if `files` is not specified, a `NOTICE` file will be included in ZIP
58
59
  files, if it's found in the project directory
59
60
  * ZIP file permissions default to `0600`, this is due to
60
61
  [bug in rubyzip](https://github.com/rubyzip/rubyzip/issues/204)
@@ -4,7 +4,7 @@ require 'zip'
4
4
  require 'zip/filesystem'
5
5
 
6
6
  # Rake tasks to cross-compile Go project and ZIP the binaries:
7
- # `rake build`, `rake test` and `rake zip`.
7
+ # `rake build`, `rake test`, `rake zip` and `rake clean`.
8
8
  #
9
9
  # Usage: `require 'go4rake'` in `Rakefile`. Settings are specified in a YAML file: `go4rake.yml`.
10
10
  #
@@ -57,6 +57,22 @@ class Go4Rake < ::Rake::TaskLib
57
57
  end
58
58
  }
59
59
  end
60
+
61
+ desc 'Delete ZIP files'
62
+ task :clean do
63
+ cfg['out'] ||= '.' # Default to the current directory, if 'out' is not specified.
64
+
65
+ cfg['platforms'].each { |os|
66
+ if os['arch'].respond_to?('each')
67
+ os['arch'].each { |arch|
68
+ clean(cfg['out'], os['zip'] ? "#{os['zip']}_#{arch}" : "#{os['name']}_#{arch}")
69
+ }
70
+ else
71
+ clean(cfg['out'], os['zip'] || "#{os['name']}_#{os['arch']}")
72
+ end
73
+ }
74
+ end
75
+
60
76
  end
61
77
 
62
78
  # Initialize `test` task.
@@ -119,4 +135,12 @@ class Go4Rake < ::Rake::TaskLib
119
135
  end
120
136
  puts("Wrote #{zip_file}")
121
137
  end
138
+
139
+ def clean(dir, file)
140
+ zip_file = File.expand_path(dir) + '/' + file + '.zip'
141
+ if File.exists?(zip_file)
142
+ puts("Removing #{zip_file}")
143
+ File.delete(zip_file)
144
+ end
145
+ end
122
146
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: go4rake
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.2'
4
+ version: '1.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vasily Korytov
@@ -38,7 +38,8 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.1'
41
- description: "`build`, `test` and `zip` tasks for cross-compilation of Go programs"
41
+ description: "`build`, `test`, `zip` and `clean` tasks for cross-compilation of Go
42
+ programs"
42
43
  email: vasily.korytov@yahoo.com
43
44
  executables: []
44
45
  extensions: []