bake-modernize 0.10.1 → 0.12.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
  SHA256:
3
- metadata.gz: ca6a04bbfc198174280655c629b6bdcaac8fe08f9ca5ec79ce854507649678bb
4
- data.tar.gz: d1491c619a975a72cdd03c46fbb52e4d3946608a650df10e9d1c59696d1b6cae
3
+ metadata.gz: da1f2384e6892b579a2eae081c45d20b3492909f430342ddccd22438561caa6d
4
+ data.tar.gz: 7be7efceea7445e1eea88c67cc01793d1774630845278eeb86530bf4b9a6fbed
5
5
  SHA512:
6
- metadata.gz: 5d5f5ca77e21a434dd60d6625858982cc0e3ebe6420a3e4a1cc79eda4c787549e54b9e10736dbea704bbd7ad3f1495517dcc401592ab4be84ca5ac54449f5bfc
7
- data.tar.gz: 1d3326be2cdfc4ad94a8a903af3529bd0fe8cbbdd04e86e45a6f2bb70a06e853552a93de0cea71c4e3575b1d923fe5437e778d8e057c00eb8104c04f48853b38
6
+ metadata.gz: ec479b10faff649e5701e03f00bd398380836984557e1862348b7dc591fb2b94e546133218f12dfc8cd7be983b8d47014d2c31ca540c392d9cb060d95554dbc5
7
+ data.tar.gz: 5c576a97c8491a1889468ff068d662a1b3f0effd0eb13a09a5a973b236fce1721fe3a94cd96511698b44c9f80fa8357dd8c3a43b08099d42effbc4b26be0d521
checksums.yaml.gz.sig CHANGED
Binary file
@@ -20,8 +20,11 @@ def update(root:)
20
20
  template_root = Bake::Modernize.template_path_for('actions')
21
21
  Bake::Modernize.copy_template(template_root, root)
22
22
 
23
- readme_path = File.expand_path("README.md", root)
24
- update_badges(readme_path, repository_url(root))
23
+ readme_path = ["README.md", "readme.md"].find{|path| File.exist?(File.expand_path(path, root))}
24
+
25
+ if readme_path
26
+ update_badges(readme_path, repository_url(root))
27
+ end
25
28
  end
26
29
 
27
30
  private
@@ -33,14 +36,14 @@ def update_filenames(root)
33
36
  # Move all .yml files to .yaml files :)
34
37
  yml_files.each do |path|
35
38
  new_path = path.with(extension: ".yaml", basename: true)
36
- FileUtils.mv(path, new_path)
39
+ FileUtils::Verbose.mv(path, new_path)
37
40
  end
38
41
 
39
42
  # Move development.yaml to test.yaml
40
43
  development_path = actions_root + "development.yaml"
41
44
  test_path = actions_root + "test.yaml"
42
45
  if development_path.exist?
43
- FileUtils.mv(development_path, test_path)
46
+ FileUtils::Verbose.mv(development_path, test_path)
44
47
  end
45
48
  end
46
49
 
@@ -0,0 +1,104 @@
1
+
2
+ require 'console'
3
+
4
+ LICENSE = <<~LICENSE
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+ LICENSE
23
+
24
+ # @parameter root [String] The root directory to scan for changes.
25
+ def license
26
+ update(root: Dir.pwd)
27
+ end
28
+
29
+ def update(root:)
30
+ authors = self.authors(root)
31
+
32
+ buffer = StringIO.new
33
+ buffer.puts "# MIT License"
34
+ buffer.puts
35
+
36
+ authors.map do |author, dates|
37
+ years = dates.map(&:year).uniq
38
+
39
+ buffer.puts "Copyright, #{years.join('-')}, by #{author}."
40
+ end
41
+
42
+ buffer.puts
43
+ buffer.puts LICENSE
44
+
45
+ File.open("license.md", "w") do |file|
46
+ file.write(buffer.string)
47
+ end
48
+ end
49
+
50
+ private
51
+
52
+ def authors(root)
53
+ paths = {}
54
+ authors = {}
55
+
56
+ total = `git rev-list --count HEAD`.to_i
57
+
58
+ input, output = IO.pipe
59
+ pid = Process.spawn("git", "log", "--name-only", "--pretty=format:%ad\t%an", out: output, chdir: root)
60
+
61
+ output.close
62
+
63
+ progress = Console.logger.progress(self, total)
64
+
65
+ while header = (input.readline.chomp rescue nil)
66
+ break if header.empty?
67
+ progress.increment
68
+
69
+ date, author = header.split("\t", 2)
70
+ date = Date.parse(date)
71
+
72
+ while path = (input.readline.chomp rescue nil)
73
+ break if path.empty?
74
+
75
+ paths[path] ||= {}
76
+ paths[path][author] ||= []
77
+ paths[path][author] << date
78
+
79
+ authors[author] ||= []
80
+ authors[author] << date
81
+ end
82
+ end
83
+
84
+ input.close
85
+ Process.wait2(pid)
86
+
87
+ paths.each do |path, authors|
88
+ authors.transform_values! do |dates|
89
+ dates.minmax
90
+ end
91
+ end
92
+
93
+ authors.transform_values! do |dates|
94
+ dates.minmax
95
+ end
96
+
97
+ authors = authors.to_a
98
+
99
+ authors.sort_by! do |author, dates|
100
+ dates
101
+ end
102
+
103
+ return authors
104
+ end
@@ -0,0 +1,28 @@
1
+
2
+ require 'bake/modernize'
3
+ require 'build/files/system'
4
+
5
+ def readme
6
+ update(root: Dir.pwd)
7
+ end
8
+
9
+ def update(root:)
10
+ update_filenames(root)
11
+ end
12
+
13
+ private
14
+
15
+ def update_filenames(root)
16
+ root = Build::Files::Path.new(root)
17
+ md_files = root.glob("*.md")
18
+
19
+ # Move all .yml files to .yaml files :)
20
+ md_files.each do |path|
21
+ new_path = path.with(basename: path.basename.downcase)
22
+
23
+ unless new_path == path
24
+ Console.logger.info(self, "Moving #{path} to #{new_path}...")
25
+ system("git", "mv", "-f", path, new_path)
26
+ end
27
+ end
28
+ end
data/bake/modernize.rb CHANGED
@@ -1,4 +1,4 @@
1
1
 
2
2
  def modernize
3
- call('modernize:git', 'modernize:actions', 'modernize:editorconfig', 'modernize:gemfile', 'modernize:signing', 'modernize:gemspec')
3
+ call('modernize:git', 'modernize:readme', 'modernize:actions', 'modernize:editorconfig', 'modernize:gemfile', 'modernize:signing', 'modernize:gemspec', 'modernize:license')
4
4
  end
@@ -20,6 +20,6 @@
20
20
 
21
21
  module Bake
22
22
  module Modernize
23
- VERSION = "0.10.1"
23
+ VERSION = "0.12.1"
24
24
  end
25
25
  end
@@ -32,7 +32,7 @@ jobs:
32
32
 
33
33
  - name: Run tests
34
34
  timeout-minutes: 5
35
- run: bundle exec rspec
35
+ run: bundle exec bake test
36
36
 
37
37
  - uses: actions/upload-artifact@v2
38
38
  with:
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bake-modernize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.12.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -11,33 +11,34 @@ bindir: bin
11
11
  cert_chain:
12
12
  - |
13
13
  -----BEGIN CERTIFICATE-----
14
- MIIEhDCCAuygAwIBAgIBATANBgkqhkiG9w0BAQsFADA3MTUwMwYDVQQDDCxzYW11
15
- ZWwud2lsbGlhbXMvREM9b3Jpb250cmFuc2Zlci9EQz1jby9EQz1uejAeFw0yMTA4
16
- MTYwNjMzNDRaFw0yMjA4MTYwNjMzNDRaMDcxNTAzBgNVBAMMLHNhbXVlbC53aWxs
17
- aWFtcy9EQz1vcmlvbnRyYW5zZmVyL0RDPWNvL0RDPW56MIIBojANBgkqhkiG9w0B
18
- AQEFAAOCAY8AMIIBigKCAYEAyXLSS/cw+fXJ5e7hi+U/TeChPWeYdwJojDsFY1xr
19
- xvtqbTTL8gbLHz5LW3QD2nfwCv3qTlw0qI3Ie7a9VMJMbSvgVEGEfQirqIgJXWMj
20
- eNMDgKsMJtC7u/43abRKx7TCURW3iWyR19NRngsJJmaR51yGGGm2Kfsr+JtKKLtL
21
- L188Wm3f13KAx7QJU8qyuBnj1/gWem076hzdA7xi1DbrZrch9GCRz62xymJlrJHn
22
- 9iZEZ7AxrS7vokhMlzSr/XMUihx/8aFKtk+tMLClqxZSmBWIErWdicCGTULXCBNb
23
- E/mljo4zEVKhlTWpJklMIhr55ZRrSarKFuW7en0+tpJrfsYiAmXMJNi4XAYJH7uL
24
- rgJuJwSaa/dMz+VmUoo7VKtSfCoOI+6v5/z0sK3oT6sG6ZwyI47DBq2XqNC6tnAj
25
- w+XmCywiTQrFzMMAvcA7rPI4F0nU1rZId51rOvvfxaONp+wgTi4P8owZLw0/j0m4
26
- 8C20DYi6EYx4AHDXiLpElWh3AgMBAAGjgZowgZcwCQYDVR0TBAIwADALBgNVHQ8E
27
- BAMCBLAwHQYDVR0OBBYEFB6ZaeWKxQjGTI+pmz7cKRmMIywwMC4GA1UdEQQnMCWB
28
- I3NhbXVlbC53aWxsaWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MC4GA1UdEgQnMCWB
29
- I3NhbXVlbC53aWxsaWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MA0GCSqGSIb3DQEB
30
- CwUAA4IBgQBVoM+pu3dpdUhZM1w051iw5GfiqclAr1Psypf16Tiod/ho//4oAu6T
31
- 9fj3DPX/acWV9P/FScvqo4Qgv6g4VWO5ZU7z2JmPoTXZtYMunRAmQPFL/gSUc6aK
32
- vszMHIyhtyzRc6DnfW2AiVOjMBjaYv8xXZc9bduniRVPrLR4J7ozmGLh4o4uJp7w
33
- x9KCFaR8Lvn/r0oJWJOqb/DMAYI83YeN2Dlt3jpwrsmsONrtC5S3gOUle5afSGos
34
- bYt5ocnEpKSomR9ZtnCGljds/aeO1Xgpn2r9HHcjwnH346iNrnHmMlC7BtHUFPDg
35
- Ts92S47PTOXzwPBDsrFiq3VLbRjHSwf8rpqybQBH9MfzxGGxTaETQYOd6b4e4Ag6
36
- y92abGna0bmIEb4+Tx9rQ10Uijh1POzvr/VTH4bbIPy9FbKrRsIQ24qDbNJRtOpE
37
- RAOsIl+HOBTb252nx1kIRN5hqQx272AJCbCjKx8egcUQKffFVVCI0nye09v5CK+a
38
- HiLJ8VOFx6w=
14
+ MIIE2DCCA0CgAwIBAgIBATANBgkqhkiG9w0BAQsFADBhMRgwFgYDVQQDDA9zYW11
15
+ ZWwud2lsbGlhbXMxHTAbBgoJkiaJk/IsZAEZFg1vcmlvbnRyYW5zZmVyMRIwEAYK
16
+ CZImiZPyLGQBGRYCY28xEjAQBgoJkiaJk/IsZAEZFgJuejAeFw0yMjA4MDYwNDUz
17
+ MjRaFw0zMjA4MDMwNDUzMjRaMGExGDAWBgNVBAMMD3NhbXVlbC53aWxsaWFtczEd
18
+ MBsGCgmSJomT8ixkARkWDW9yaW9udHJhbnNmZXIxEjAQBgoJkiaJk/IsZAEZFgJj
19
+ bzESMBAGCgmSJomT8ixkARkWAm56MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIB
20
+ igKCAYEAomvSopQXQ24+9DBB6I6jxRI2auu3VVb4nOjmmHq7XWM4u3HL+pni63X2
21
+ 9qZdoq9xt7H+RPbwL28LDpDNflYQXoOhoVhQ37Pjn9YDjl8/4/9xa9+NUpl9XDIW
22
+ sGkaOY0eqsQm1pEWkHJr3zn/fxoKPZPfaJOglovdxf7dgsHz67Xgd/ka+Wo1YqoE
23
+ e5AUKRwUuvaUaumAKgPH+4E4oiLXI4T1Ff5Q7xxv6yXvHuYtlMHhYfgNn8iiW8WN
24
+ XibYXPNP7NtieSQqwR/xM6IRSoyXKuS+ZNGDPUUGk8RoiV/xvVN4LrVm9upSc0ss
25
+ RZ6qwOQmXCo/lLcDUxJAgG95cPw//sI00tZan75VgsGzSWAOdjQpFM0l4dxvKwHn
26
+ tUeT3ZsAgt0JnGqNm2Bkz81kG4A2hSyFZTFA8vZGhp+hz+8Q573tAR89y9YJBdYM
27
+ zp0FM4zwMNEUwgfRzv1tEVVUEXmoFCyhzonUUw4nE4CFu/sE3ffhjKcXcY//qiSW
28
+ xm4erY3XAgMBAAGjgZowgZcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
29
+ BBYEFO9t7XWuFf2SKLmuijgqR4sGDlRsMC4GA1UdEQQnMCWBI3NhbXVlbC53aWxs
30
+ aWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MC4GA1UdEgQnMCWBI3NhbXVlbC53aWxs
31
+ aWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MA0GCSqGSIb3DQEBCwUAA4IBgQB5sxkE
32
+ cBsSYwK6fYpM+hA5B5yZY2+L0Z+27jF1pWGgbhPH8/FjjBLVn+VFok3CDpRqwXCl
33
+ xCO40JEkKdznNy2avOMra6PFiQyOE74kCtv7P+Fdc+FhgqI5lMon6tt9rNeXmnW/
34
+ c1NaMRdxy999hmRGzUSFjozcCwxpy/LwabxtdXwXgSay4mQ32EDjqR1TixS1+smp
35
+ 8C/NCWgpIfzpHGJsjvmH2wAfKtTTqB9CVKLCWEnCHyCaRVuKkrKjqhYCdmMBqCws
36
+ JkxfQWC+jBVeG9ZtPhQgZpfhvh+6hMhraUYRQ6XGyvBqEUe+yo6DKIT3MtGE2+CP
37
+ eX9i9ZWBydWb8/rvmwmX2kkcBbX0hZS1rcR593hGc61JR6lvkGYQ2MYskBveyaxt
38
+ Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
39
+ voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
39
40
  -----END CERTIFICATE-----
40
- date: 2022-08-06 00:00:00.000000000 Z
41
+ date: 2022-08-18 00:00:00.000000000 Z
41
42
  dependencies:
42
43
  - !ruby/object:Gem::Dependency
43
44
  name: async-http
@@ -135,6 +136,8 @@ files:
135
136
  - bake/modernize/gemfile.rb
136
137
  - bake/modernize/gemspec.rb
137
138
  - bake/modernize/git.rb
139
+ - bake/modernize/license.rb
140
+ - bake/modernize/readme.rb
138
141
  - bake/modernize/signing.rb
139
142
  - lib/bake/modernize.rb
140
143
  - lib/bake/modernize/version.rb
metadata.gz.sig CHANGED
Binary file