neetodeploy 1.1.8 → 1.1.10

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: c76a4214357b2c2da95a83e581ed24e1ea67079487be44ec46f36642fcc6b54c
4
- data.tar.gz: 7d76010751d2ea5f58884ad597cd52d0e09713ee2ce93c156b7a9c1182e6300d
3
+ metadata.gz: 8a3d1d307a336febc75e845090520f3b9682fccb51d37f1d916b7e687f60552f
4
+ data.tar.gz: 29f7510011934930720d507581cfffa69ea51eeca7c338da3cab3bd496b7a981
5
5
  SHA512:
6
- metadata.gz: 92fd39525159fe65d6ed7faee0824c870face78481b68918031f3b2c374c4bde81b0b9c83d7a7c5d689397d5142a32dae12bdc9b11d110d76910e6e138f82220
7
- data.tar.gz: 940ae23e945b2dfda9c2d02f7d50dd4d7fb8bbcf73b136e8d068c9bc75966e4051bf4b5f10a123e8478489e75e6fc165b6242e12c098c042f8bd1862328ab0ea
6
+ metadata.gz: e1afa2622a80ca5398335fbc166e2ad018be68e679d2d62ab837dca25e2a33a5358de3f1ce3a185d0641b6edf814acc13238a8258f193d3de1e78d73163ba9e2
7
+ data.tar.gz: 2f5c3ada11bf0ade6600c2e3af217e4b2203ea53e13d7cca543872042e95b334b8698d1b328971c24988cdc57c3b239702db9e6a33faae9e6478be0f4fb659a7
data/Gemfile CHANGED
@@ -5,3 +5,5 @@ source "https://rubygems.org"
5
5
  gemspec
6
6
 
7
7
  gem "byebug"
8
+
9
+ gem "websocket-eventmachine-client"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- neetodeploy (1.1.8)
4
+ neetodeploy (1.1.10)
5
5
  colorize
6
6
  dotenv (~> 2.8.1)
7
7
  httparty (~> 0.21.0)
@@ -9,7 +9,7 @@ PATH
9
9
  terminal-table (~> 3.0.2)
10
10
  thor (~> 1.3.0)
11
11
  tty-spinner
12
- websocket-client-simple
12
+ websocket-eventmachine-client
13
13
 
14
14
  GEM
15
15
  remote: https://rubygems.org/
@@ -19,7 +19,7 @@ GEM
19
19
  byebug (11.1.3)
20
20
  colorize (1.1.0)
21
21
  dotenv (2.8.1)
22
- event_emitter (0.2.6)
22
+ eventmachine (1.2.7)
23
23
  httparty (0.21.0)
24
24
  mini_mime (>= 1.0.0)
25
25
  multi_xml (>= 0.5.2)
@@ -36,9 +36,13 @@ GEM
36
36
  tty-cursor (~> 0.7)
37
37
  unicode-display_width (2.4.2)
38
38
  websocket (1.2.9)
39
- websocket-client-simple (0.6.1)
40
- event_emitter
41
- websocket
39
+ websocket-eventmachine-base (1.2.0)
40
+ eventmachine (~> 1.0)
41
+ websocket (~> 1.0)
42
+ websocket-native (~> 1.0)
43
+ websocket-eventmachine-client (1.3.0)
44
+ websocket-eventmachine-base (~> 1.0)
45
+ websocket-native (1.0.0)
42
46
 
43
47
  PLATFORMS
44
48
  arm64-darwin-20
@@ -48,6 +52,7 @@ PLATFORMS
48
52
  DEPENDENCIES
49
53
  byebug
50
54
  neetodeploy!
55
+ websocket-eventmachine-client
51
56
 
52
57
  BUNDLED WITH
53
58
  2.4.8
data/exe/console CHANGED
Binary file
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "websocket-client-simple"
4
3
  require "thor"
5
4
  require "readline"
6
5
 
@@ -26,9 +25,6 @@ module NeetoDeploy
26
25
  start_spinner
27
26
  send_console_session_request
28
27
  ui.error("\n#{@response.body}") and return unless @response.success?
29
-
30
-
31
- buffer_wait_block
32
28
  start_console
33
29
  connection_cleanup_callback
34
30
  end
@@ -50,6 +46,7 @@ module NeetoDeploy
50
46
 
51
47
  def send_console_session_request
52
48
  @response = send_post_request(console_session_base_url, { app_slug: @app_name })
49
+ @spinner.stop
53
50
  end
54
51
 
55
52
  def connection_cleanup_callback
@@ -58,14 +55,9 @@ module NeetoDeploy
58
55
  end
59
56
 
60
57
  def start_spinner
61
- @spinner = TTY::Spinner.new("[:spinner] Connecting to #{app_name}", format: :classic)
58
+ @spinner = TTY::Spinner.new("Setting up dyno [:spinner]", format: :classic)
62
59
  @spinner.auto_spin
63
60
  end
64
-
65
- def buffer_wait_block
66
- sleep 5
67
- @spinner.stop
68
- end
69
61
  end
70
62
  end
71
63
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "websocket-client-simple"
4
3
  require "thor"
5
4
  require "colorize"
5
+ require "websocket-eventmachine-client"
6
6
 
7
7
  require_relative "../session"
8
8
  require_relative "./constants"
@@ -14,11 +14,11 @@ module NeetoDeploy
14
14
  include Constants
15
15
  include Session
16
16
 
17
- attr_reader :app_name, :process_type
17
+ attr_reader :app_slug, :process_type
18
18
 
19
- def initialize(app_name, process_type = nil)
19
+ def initialize(app_slug, process_type = nil)
20
20
  super()
21
- @app_name = app_name
21
+ @app_slug = app_slug
22
22
  @process_type = process_type
23
23
  end
24
24
 
@@ -32,57 +32,45 @@ module NeetoDeploy
32
32
  "wss://connect.neetodeploy.com/cable"
33
33
  end
34
34
 
35
- def ensure_app_access?
36
- response = send_get_request(app_verify_access_url, { app_slug: app_name })
37
- @ui.error(JSON[response.body]["error"]) unless response.success?
38
- response.success?
39
- end
40
-
41
35
  def stream_logs
42
- ws_connection = WebSocket::Client::Simple.connect(uri)
43
- session_token = common_body[:session_token]
44
- app_slug = @app_name
45
- process_type = @process_type
46
- pubsub_token = SecureRandom.hex(16)
36
+ EM.run do
37
+ session_token = common_body[:session_token]
38
+ pubsub_token = SecureRandom.hex(16)
39
+ ws_connection = WebSocket::EventMachine::Client.connect(uri:)
47
40
 
48
- ws_connection.on :open do
49
- payload = {
50
- command: "subscribe",
51
- identifier: {
52
- channel: "Cli::LogChannel", app_slug:, pubsub_token:, process_type:,
53
- session_token:
54
- }.to_json
55
- }
56
- ws_connection.send(payload.to_json)
57
- end
41
+ ws_connection.onopen do
42
+ payload = {
43
+ command: "subscribe",
44
+ identifier: {
45
+ channel: "Cli::LogChannel", app_slug:, pubsub_token:, process_type:,
46
+ session_token:
47
+ }.to_json
48
+ }
49
+ ws_connection.send(payload.to_json)
50
+ end
58
51
 
59
- ws_connection.on :message do |msg|
60
- unless msg.data.empty?
61
- parsed_msg = JSON.parse(msg.data)
62
- if parsed_msg["type"].nil?
63
- parsed_msg["message"]&.each do |log|
64
- STDOUT.write "#{Time.at(log[0].to_i / 1e9).to_s.light_magenta} #{log[1]}\n"
52
+ ws_connection.onmessage do |msg, type|
53
+ parsed_message = JSON[msg]
54
+ if parsed_message["message"] && parsed_message["type"] != "ping"
55
+ logs = JSON[parsed_message["message"]]["streams"].flat_map do |stream|
56
+ stream["values"].map do |array|
57
+ "#{Time.at(array[0].to_i / 1e9).to_s.light_magenta} #{array[1]}"
58
+ end
65
59
  end
66
- elsif parsed_msg["type"] == "disconnect"
67
- puts parsed_msg["error"].red
60
+ STDOUT.puts logs
61
+ end
62
+
63
+ if parsed_message["type"] == "disconnect"
64
+ puts parsed_message["error"].red
65
+ ws_connection.close
68
66
  exit
69
67
  end
70
68
  end
71
- end
72
-
73
- ws_connection.on :close do |e|
74
- p e unless e.nil?
75
- exit 1
76
- end
77
69
 
78
- ws_connection.on :error do |e|
79
- p e
80
- puts "MyserverBackend>> Close entered. Last error:#{$!.class}:#{$!.to_s};Module:#{$0};"
81
- $@.each { |backtrace| puts backtrace }
82
- exit 1
70
+ ws_connection.onerror do |error|
71
+ puts "Error: #{error}"
72
+ end
83
73
  end
84
-
85
- loop do end
86
74
  end
87
75
  end
88
76
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NeetoDeploy
4
- VERSION = "1.1.8"
4
+ VERSION = "1.1.10"
5
5
  CLI_API_VERSION = "v1"
6
6
  end
data/neetodeploy.gemspec CHANGED
@@ -35,7 +35,7 @@ Gem::Specification.new do |spec|
35
35
  spec.add_dependency "launchy", "~> 2.5.0" # for opening in browser
36
36
  spec.add_dependency "terminal-table", "~> 3.0.2" # for building cli table
37
37
  spec.add_dependency "thor", "~> 1.3.0" # for cli
38
- spec.add_dependency "websocket-client-simple"
38
+ spec.add_dependency "websocket-eventmachine-client"
39
39
  spec.add_dependency "colorize"
40
40
  spec.add_dependency "tty-spinner"
41
41
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neetodeploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.8
4
+ version: 1.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Subin Siby
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-01 00:00:00.000000000 Z
11
+ date: 2024-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.3.0
83
83
  - !ruby/object:Gem::Dependency
84
- name: websocket-client-simple
84
+ name: websocket-eventmachine-client
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="