souls 0.24.7 → 0.24.8

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: b2d5b134e45db7243b8abcfcf23622276de3d76f386d63123695dbe07a1359df
4
- data.tar.gz: 413356865c3203299c148c8be2ab40be0a1793d08a96ad56d9962868eabcb6af
3
+ metadata.gz: 5e1ce66f5d9dc4581e6283e4585ebaaa91dcbbf6595f9c723f1110ecefaf9683
4
+ data.tar.gz: c6b20a59319f44a24beea293c5ea4c5948d121230d2220cfe6292fa789cfbfdf
5
5
  SHA512:
6
- metadata.gz: 0760b5f71c86db10d87a1be895d37ef1fcf00111453d16619531a6d3dc30b895e3dd39a1172d5acb0b9b52001d2136c459918c029e14dbb8b6ce7a683d1a4855
7
- data.tar.gz: 15b14c42fce4845c49a7f510f177ca82c41ff065616ce8bb2fdcc738f115b2f094d4cb71e32cffadb5b2661a34b6d75311ce7000d1218e660af66717a5ae03fb
6
+ metadata.gz: 301c64176cb961f8e88532e06761c97d894c3c878674773e950275ecf7e83fad4ccd5d8a8985ab9178306d647716679dfcca391081ce59bf838a070e18510888
7
+ data.tar.gz: 4df80954681e798712153e297c6662d3faf9d8c6241bcb7ac8dc8094b65b204a336f6eeff375743de5fe3715b5045cf07d1daf45a2a2ef3f4a69e52a7fe847ee
data/exe/souls CHANGED
@@ -95,17 +95,33 @@ begin
95
95
  Souls.update_gemfile
96
96
  Whirly.status = "Done!"
97
97
  end
98
- when "update"
99
- service_name = ARGV[1]
100
- permit_services = %w[api worker console admin media]
101
- raise(StandardError, "Wrong Service Name!") unless permit_services.include?(service_name)
98
+ when "release"
99
+ current_souls_ver = Souls::VERSION.strip.split(".").map(&:to_i)
100
+ prompt = TTY::Prompt.new
101
+ choices = [
102
+ "1. Patch(#{Souls.version_detector(current_ver: current_souls_ver, update_kind: 'patch')})",
103
+ "2. Minor(#{Souls.version_detector(current_ver: current_souls_ver, update_kind: 'minor')})",
104
+ "3. Major(#{Souls.version_detector(current_ver: current_souls_ver, update_kind: 'major')})"
105
+ ]
106
+ choice_num = prompt.select("Select Version: ", choices)[0].to_i
107
+ update_kinds = %w[patch minor major]
108
+ update_kind = update_kinds[choice_num - 1]
109
+ souls_new_ver = Souls.version_detector(current_ver: current_souls_ver, update_kind: update_kind)
102
110
 
103
111
  status = Paint["Saving Repo...", :yellow]
104
112
  Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
105
113
  Whirly.status = status
106
- result = Paint[Souls.update_repo(service_name: service_name), :green]
107
- Whirly.status = result
114
+ %w[api worker].each do |s_name|
115
+ result = Paint[Souls.update_repo(service_name: s_name, update_kind: update_kind), :green]
116
+ Whirly.status = result
117
+ end
118
+ Souls.overwrite_version(new_version: souls_new_ver)
119
+ system("rake build")
120
+ system("rake release")
121
+ Whirly.status = Paint["soul-v#{souls_new_ver} successfully updated!"]
108
122
  end
123
+ when "update"
124
+ puts(Paint["Coming soon..", :cyan])
109
125
  when "add"
110
126
  graphql_class = ARGV[1]
111
127
  case graphql_class
@@ -234,4 +250,5 @@ begin
234
250
  end
235
251
  rescue StandardError => e
236
252
  puts(Paint[e, :red])
253
+ puts(e.backtrace)
237
254
  end
data/lib/souls.rb CHANGED
@@ -10,6 +10,7 @@ require "net/http"
10
10
  require "paint"
11
11
  require "whirly"
12
12
  require "google/cloud/firestore"
13
+ require "tty-prompt"
13
14
 
14
15
  module Souls
15
16
  SOULS_METHODS = %w[
@@ -167,20 +168,20 @@ module Souls
167
168
  end
168
169
  end
169
170
 
170
- def update_repo(service_name: "api")
171
+ def update_repo(service_name: "api", update_kind: "patch")
171
172
  current_dir_name = FileUtils.pwd.to_s.match(%r{/([^/]+)/?$})[1]
172
- latest_gem = get_latest_version(service_name: service_name)
173
- new_ver = latest_gem[:version_counter] + 1
173
+ current_ver = get_latest_version_txt(service_name: service_name)
174
+ new_ver = version_detector(current_ver: current_ver, update_kind: update_kind)
174
175
  bucket_url = "gs://souls-bucket/boilerplates"
175
176
  file_name = "#{service_name}-v#{new_ver}.tgz"
176
177
  release_name = "#{service_name}-latest.tgz"
177
178
 
178
179
  case current_dir_name
179
180
  when "souls"
180
- system("echo 'v#{new_ver}' > apps/#{service_name}/.souls_version")
181
+ system("echo 'v#{new_ver}' > lib/souls/versions/.souls_#{service_name}_version")
181
182
  system("cd apps/ && tar -czf ../#{service_name}.tgz #{service_name}/ && cd ..")
182
183
  when "api", "worker", "console", "admin", "media"
183
- system("echo 'v#{new_ver}' > .souls_version")
184
+ system("echo 'v#{new_ver}' > lib/souls/versions/.souls_#{service_name}_version")
184
185
  system("cd .. && tar -czf ../#{service_name}.tgz #{service_name}/ && cd #{service_name}")
185
186
  else
186
187
  raise(StandardError, "You are at wrong directory!")
@@ -188,18 +189,52 @@ module Souls
188
189
 
189
190
  system("gsutil cp #{service_name}.tgz #{bucket_url}/#{service_name.pluralize}/#{file_name}")
190
191
  system("gsutil cp #{service_name}.tgz #{bucket_url}/#{service_name.pluralize}/#{release_name}")
191
- file_url = "https://storage.googleapis.com/souls-bucket/boilerplates/#{service_name.pluralize}/#{file_name}"
192
- version_log(service_name: service_name, version_counter: new_ver, file_url: file_url)
193
192
  FileUtils.rm("#{service_name}.tgz")
194
193
  "#{service_name}-v#{new_ver} Succefully Stored to GCS! "
195
194
  end
196
195
 
197
- def version_log(service_name: "api", version_counter: 1, file_url: "")
198
- version = "v#{version_counter}"
199
- time = Time.now.strftime("%F-%H-%M-%S")
200
- firestore = Google::Cloud::Firestore.new(project_id: ENV["FIRESTORE_PID"])
201
- doc_ref = firestore.doc("#{service_name}/#{version_counter}")
202
- doc_ref.set({ version: version, version_counter: version_counter, file_url: file_url, created_at: time })
196
+ def version_detector(current_ver: [0, 0, 1], update_kind: "patch")
197
+ case update_kind
198
+ when "patch"
199
+ "#{current_ver[0]}.#{current_ver[1]}.#{current_ver[2] + 1}"
200
+ when "minor"
201
+ "#{current_ver[0]}.#{current_ver[1] + 1}.0"
202
+ when "major"
203
+ "#{current_ver[0] + 1}.0.0"
204
+ else
205
+ raise(StandardError, "Wrong version!")
206
+ end
207
+ end
208
+
209
+ def overwrite_version(new_version: "0.1.1")
210
+ FileUtils.rm("./lib/souls/version.rb")
211
+ file_path = "./lib/souls/version.rb"
212
+ File.open(file_path, "w") do |f|
213
+ f.write(<<~TEXT)
214
+ module Souls
215
+ VERSION = "#{new_version}".freeze
216
+ public_constant :VERSION
217
+ end
218
+ TEXT
219
+ end
220
+ true
221
+ rescue StandardError, e
222
+ raise(StandardError, e)
223
+ end
224
+
225
+ def get_latest_version_txt(service_name: "api")
226
+ current_dir_name = FileUtils.pwd.to_s.match(%r{/([^/]+)/?$})[1]
227
+ case current_dir_name
228
+ when "souls"
229
+ file_path = "./lib/souls/versions/.souls_version"
230
+ when "api", "worker", "console", "admin", "media"
231
+ file_path = ".../lib/souls/versions/.souls_#{service_name}_version"
232
+ else
233
+ raise(StandardError, "You are at wrong directory!")
234
+ end
235
+ File.open(file_path, "r") do |f|
236
+ f.readlines[0].strip.split(".").map(&:to_i)
237
+ end
203
238
  end
204
239
 
205
240
  def get_latest_version(service_name: "api")
@@ -221,6 +256,19 @@ module Souls
221
256
  end
222
257
  end
223
258
 
259
+ def detect_change
260
+ git_status = `git status`
261
+ result =
262
+ %w[api worker].map do |service_name|
263
+ if git_status.include?("apps/#{service_name}/")
264
+ service_name
265
+ else
266
+ next
267
+ end
268
+ end
269
+ result.compact
270
+ end
271
+
224
272
  def configure
225
273
  self.configuration ||= Configuration.new
226
274
  yield(configuration)
data/lib/souls/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Souls
2
- VERSION = "0.24.7".freeze
2
+ VERSION = "0.24.8".freeze
3
3
  public_constant :VERSION
4
4
  end
@@ -0,0 +1 @@
1
+ v0.24.8
@@ -0,0 +1 @@
1
+ 0.24.7
@@ -0,0 +1 @@
1
+ v0.24.8
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: souls
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.24.7
4
+ version: 0.24.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - POPPIN-FUMI
@@ -40,6 +40,20 @@ dependencies:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
42
  version: 2.2.1
43
+ - !ruby/object:Gem::Dependency
44
+ name: tty-prompt
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - '='
48
+ - !ruby/object:Gem::Version
49
+ version: 0.23.1
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - '='
55
+ - !ruby/object:Gem::Version
56
+ version: 0.23.1
43
57
  - !ruby/object:Gem::Dependency
44
58
  name: whirly
45
59
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +108,9 @@ files:
94
108
  - lib/souls/generate/type.rb
95
109
  - lib/souls/init.rb
96
110
  - lib/souls/version.rb
111
+ - lib/souls/versions/.souls_api_version
112
+ - lib/souls/versions/.souls_version
113
+ - lib/souls/versions/.souls_worker_version
97
114
  homepage: https://souls.elsoul.nl
98
115
  licenses:
99
116
  - Apache-2.0