apple_certs_info 0.2.1 → 0.3.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d832e03b2b9b9bc4258931131ac30b37cc98fff25e42566adcecae71b48634c0
4
- data.tar.gz: ff2ca0720578dc99224e3740e75b9a4d97dff1e4d4694ade8e347f17dfa0b392
3
+ metadata.gz: 68d3c3b54444d29ee89642ab3cc5a4c140d4ebd8d3285109c8f58ce523dec0fc
4
+ data.tar.gz: affc1729365659a246ae3af13ce77883eefb74b35d51938dd750733584e75bd2
5
5
  SHA512:
6
- metadata.gz: 16c615e264bc2867d2cd579dd6e80093b19677cef36747853c01286dfcf3319969d154fbb2e2a203724b6e9c8bd3582c0e609edf9a0c5231efe74130cbc9b9d6
7
- data.tar.gz: a143ac10d7c70e5ebe9f8f957f83c13b204feac3bbec525c1465fc7b25d2b28f43fa5937b94a29221725597a3d86f63b6a77535ba2a1e3ef1237520463022242
6
+ metadata.gz: d62764bd66bf50b64c9ef1749ab36a0c187448e180b63545d25df0f5f525daf0b8054940dc6cbf32a7bcdda338bf1f639596473637bf242289561547fc8b5b00
7
+ data.tar.gz: 14a074228da2d5cb4f69147df2bd14c69136a9645dcce6f12cf38cffe16a682b0e8d6f9338c209b8c9722391e05f24cce0d6b0e400a00c0c3446c4ee8e29cd72
@@ -108,28 +108,28 @@
108
108
  </library>
109
109
  </orderEntry>
110
110
  <orderEntry type="module-library">
111
- <library name="rspec-mocks (vbundled(3.10.1)) [path][gem]" type="rubylib">
111
+ <library name="rspec-mocks (vbundled(3.10.2)) [path][gem]" type="rubylib">
112
112
  <properties>
113
113
  <option name="version" value="4" />
114
114
  </properties>
115
115
  <CLASSES>
116
- <root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.1/lib" />
116
+ <root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/lib" />
117
117
  </CLASSES>
118
118
  <SOURCES>
119
- <root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.1/lib" />
119
+ <root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/lib" />
120
120
  </SOURCES>
121
121
  </library>
122
122
  </orderEntry>
123
123
  <orderEntry type="module-library">
124
- <library name="rspec-support (vbundled(3.10.1)) [path][gem]" type="rubylib">
124
+ <library name="rspec-support (vbundled(3.10.2)) [path][gem]" type="rubylib">
125
125
  <properties>
126
126
  <option name="version" value="4" />
127
127
  </properties>
128
128
  <CLASSES>
129
- <root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.1/lib" />
129
+ <root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib" />
130
130
  </CLASSES>
131
131
  <SOURCES>
132
- <root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.1/lib" />
132
+ <root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib" />
133
133
  </SOURCES>
134
134
  </library>
135
135
  </orderEntry>
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- apple_certs_info (0.2.1)
4
+ apple_certs_info (0.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -13,6 +13,17 @@ module AppleCertsInfo
13
13
  @debug_log
14
14
  end
15
15
 
16
+ # Remove duplicate certificate
17
+ # remove first data
18
+ def self.remove_duplicate_certificate
19
+ list = certificate_development_list.concat(certificate_distribution_list)
20
+
21
+ duplicate_cname = list.group_by{ |e| e[:cname] }.select { |k, v| v.size > 1 }.map(&:first)
22
+ duplicate_cname.each do |cname|
23
+ delete_first_match_keychain(name: cname)
24
+ end
25
+ end
26
+
16
27
  # Check Certificate file for iPhone Developer /Apple Development in the KeyChain
17
28
  # @param days: limit days
18
29
  # @return:
@@ -127,12 +138,12 @@ module AppleCertsInfo
127
138
  expire_datetime_match.each do |original_datetime|
128
139
  expire_datetime = Time.parse(original_datetime.first)
129
140
  limit_days = calc_limit_days(datetime: expire_datetime)
130
- cname = cname_match[1]
141
+ cname = cname_match[1] # cname is same
131
142
 
132
143
  info << {
133
- :expire_datetime => expire_datetime,
134
- :limit_days => limit_days,
135
- :cname => cname
144
+ :expire_datetime => expire_datetime,
145
+ :limit_days => limit_days,
146
+ :cname => cname,
136
147
  }
137
148
  end
138
149
  rescue StandardError => e
@@ -146,8 +157,20 @@ module AppleCertsInfo
146
157
 
147
158
 
148
159
  private
160
+ def self.delete_first_match_keychain(name:)
161
+ result = `security find-certificate -a -c "#{name}" -Z`
162
+ sha_match = result.match(/SHA-1 hash: (.*)/)
163
+ keychain_path = result.match(/keychain: (.*)/)
164
+ raise "not exits sha-1" if sha_match.nil?
165
+ raise "not exits keychain_path" if keychain_path.nil?
166
+ sha1 = sha_match[1]
167
+ puts "Delete #{name} / SHA-1: #{sha1}"
168
+
169
+ result = `security delete-certificate -Z #{sha1} #{keychain_path[1]}`
170
+ end
171
+
149
172
  def self.certificate_list_for(name:)
150
- result = `security find-certificate -a -c "#{name}"`
173
+ result = `security find-certificate -a -c "#{name}" -Z`
151
174
  name_match_list = result.scan(/.*alis".*=\"(.*)\".*/)
152
175
  puts(name_match_list) if @debug_log == true
153
176
 
@@ -1,3 +1,3 @@
1
1
  module AppleCertsInfo
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apple_certs_info
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - tarappo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-18 00:00:00.000000000 Z
11
+ date: 2021-02-19 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: