souls 0.24.7 → 0.24.11

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: b2d5b134e45db7243b8abcfcf23622276de3d76f386d63123695dbe07a1359df
4
- data.tar.gz: 413356865c3203299c148c8be2ab40be0a1793d08a96ad56d9962868eabcb6af
3
+ metadata.gz: '08ded47eabab02b392e0032917f4209d1fa6c33e799df1490313e6e7d7458da2'
4
+ data.tar.gz: 83ef4754681c0e077ebce313e6ee23882a84ad69deaa9d5536d2011dbf7d0dc5
5
5
  SHA512:
6
- metadata.gz: 0760b5f71c86db10d87a1be895d37ef1fcf00111453d16619531a6d3dc30b895e3dd39a1172d5acb0b9b52001d2136c459918c029e14dbb8b6ce7a683d1a4855
7
- data.tar.gz: 15b14c42fce4845c49a7f510f177ca82c41ff065616ce8bb2fdcc738f115b2f094d4cb71e32cffadb5b2661a34b6d75311ce7000d1218e660af66717a5ae03fb
6
+ metadata.gz: 4bf499775966a57709d93f1094f2fd03a06439b524ab3d3c00a385b46d8caaeb628a3b58f59caa93bf0828672670035772ccb524ee9937db2f2a21c23274634e
7
+ data.tar.gz: a7ed6ebf27577490cb63f1c3eb64b9c5573c3714491e3c664029488aa26e0fb03a384478b84449304026e382b55ac7857e622ed0aa0d1b0abd37690d6be43e8d
data/README.md CHANGED
@@ -102,9 +102,7 @@ souls gem:update
102
102
  Souls.configure do |config|
103
103
  config.app = "souls-api"
104
104
  config.project_id = "souls-api"
105
- config.strain = "worker"
106
- config.api_repo = "elsoul/souls_api"
107
- config.worker_repo = "elsoul/souls_worker"
105
+ config.strain = "api"
108
106
  config.worker_endpoint = "https://worker.com"
109
107
  config.fixed_gems = ["selenium-webdriver", "pg"]
110
108
  end
data/exe/souls CHANGED
@@ -95,17 +95,41 @@ 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
+ sleep(5)
120
+ puts("before add")
121
+ system("git add .")
122
+ sleep(2)
123
+ puts("before commit")
124
+ system("git commit -m 'souls update v#{souls_new_ver}'")
125
+ sleep(2)
126
+ puts("before build")
127
+ system("rake build")
128
+ system("rake release")
129
+ Whirly.status = Paint["soul-v#{souls_new_ver} successfully updated!"]
108
130
  end
131
+ when "update"
132
+ puts(Paint["Coming soon..", :cyan])
109
133
  when "add"
110
134
  graphql_class = ARGV[1]
111
135
  case graphql_class
@@ -234,4 +258,5 @@ begin
234
258
  end
235
259
  rescue StandardError => e
236
260
  puts(Paint[e, :red])
261
+ puts(e.backtrace)
237
262
  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
+ return Souls::VERSION.split(".").map(&:to_i)
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.11".freeze
3
3
  public_constant :VERSION
4
4
  end
@@ -0,0 +1 @@
1
+ v0.24.11
@@ -0,0 +1 @@
1
+ v0.24.11
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.11
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,8 @@ 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_worker_version
97
113
  homepage: https://souls.elsoul.nl
98
114
  licenses:
99
115
  - Apache-2.0