sct 1.0.4 → 1.0.9

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: 06a1549735471b58e3b71a78c178d20f2b0286ab56aa033ec38939e72e753136
4
- data.tar.gz: 03b53faf4b186f00b8ed7e90472987bf996f1bc0c7dfdfdaa99d2d312fdb1bcb
3
+ metadata.gz: a4e19d771e32524e38a9d685d161bdf57a17a71569536ce5af8fd51462b52960
4
+ data.tar.gz: 610520f2b59b575ccc858c80af79cd1b40b470c403c849e34415559461e9b4ee
5
5
  SHA512:
6
- metadata.gz: e3774e0a9a48e460aaa4beaec523337f91b3f2e8c14d25175cb7af2cb74e3779da9daae1546af322afa3871ad3d77445cb63186b30a0dcc444c2b3747e91919c
7
- data.tar.gz: 85b8be2a234f769f590ba26ff80ddff7736603427b54a75abfee25a05e28a524ed3f955a3c64f7446a91d7a9a0ec3acce9dce2cb50d590f8e1de4c4c3bed94d1
6
+ metadata.gz: cd68fb3fd3e6c5ba9c4a91232cb83427697631385367eefff7a5477fd99e10f8c524f9d7ea4327c56d7ab31a93fca09e4ee610aad3b099ce14d26f7ab4777e76
7
+ data.tar.gz: 2ab0d6e33f702ec64050126b05ee818e607ceae6b806a5ee91938295cf7e8e69824e3e3dacf41688e4f538041e67aaacfecd7c7708d168be3ce5311ef527e75b
@@ -1,6 +1,6 @@
1
1
  module Sct
2
2
  class CLIToolsDistributor
3
- class << self
3
+ class << self
4
4
  def take_off
5
5
  require 'sct'
6
6
 
@@ -8,18 +8,18 @@ module Sct
8
8
 
9
9
  if tool_name && Sct::TOOLS.include?(tool_name.to_sym)
10
10
  # Triggering a specific tool
11
-
11
+
12
12
  require tool_name
13
13
  begin
14
14
  # First, remove the tool's name from the arguments
15
15
  # Since it will be parsed by the `commander` at a later point
16
16
  # and it must not contain the binary name
17
17
  ARGV.shift
18
-
18
+
19
19
  # Import the CommandsGenerator class, which is used to parse
20
20
  # the user input
21
21
  require File.join(tool_name, "commands_generator")
22
-
22
+
23
23
  # Call the tool's CommandsGenerator class and let it do its thing
24
24
  commands_generator = Object.const_get(tool_name.sct_module)::CommandsGenerator
25
25
  rescue LoadError
@@ -28,15 +28,15 @@ module Sct
28
28
  # When we launch this feature, this should never be the case
29
29
  abort("#{tool_name} can't be called via `sct #{tool_name}`, run '#{tool_name}' directly instead".red)
30
30
  end
31
-
31
+
32
32
  # Some of the tools might use other actions so need to load all
33
33
  # actions before we start the tool generator here in the future
34
34
  Sct.load_actions
35
-
35
+
36
36
  # trigger start on tool
37
37
  commands_generator.start
38
38
 
39
- else
39
+ else
40
40
  require "sct/commands_generator"
41
41
  Sct::CommandsGenerator.start
42
42
  end
@@ -47,4 +47,4 @@ module Sct
47
47
 
48
48
  end
49
49
  end
50
- end
50
+ end
@@ -0,0 +1,37 @@
1
+ module Sct
2
+ class DatabasePullCommand
3
+ def error message
4
+ UI.error message
5
+ exit 1
6
+ end
7
+
8
+ def execute args, options
9
+ branch = ENV['CI_BRANCH']
10
+ if not branch or branch == ""
11
+ branch = 'master'
12
+ end
13
+
14
+ # We need to set this locally, so that we don't save this at the repository
15
+ pipeline_endpoint = ENV['CI_MERGE_REQUEST_PIPELINE']
16
+ if not pipeline_endpoint
17
+ error "Pipeline endpoint not set"
18
+ end
19
+
20
+ # We need to set this locally, so that we don't save this at the repository
21
+ private_token = ENV['CI_PRIVATE_TOKEN']
22
+ if not private_token
23
+ error "Private token not set"
24
+ end
25
+
26
+ if options.proactive_frame
27
+ UI.important("Requesting to pull database for proactive frame")
28
+ process_request = `curl -X POST -F token=#{private_token} -F ref=master -F variables[DB_PULL_FRAME]=true -F variables[REMOTE_BRANCH_NAME]=#{branch} #{pipeline_endpoint}`
29
+ end
30
+
31
+ if options.proactive_config
32
+ UI.important("Requesting to pull database for proactive config")
33
+ process_request = `curl -X POST -F token=#{private_token} -F ref=master -F variables[DB_PULL_CONFIG]=true -F variables[REMOTE_BRANCH_NAME]=#{branch} #{pipeline_endpoint}`
34
+ end
35
+ end
36
+ end
37
+ end
@@ -38,7 +38,21 @@ module Sct
38
38
  container = service_spec["container_name"]
39
39
  command = service_spec["command"] || ""
40
40
 
41
- env = { "PUID" => `id -u`.chomp, "PGID" => `id -g`.chomp }
41
+ if Sct::Helper.is_windows?
42
+ host_machine_IP = (options.wsl_debugger ? `hostname -I | awk '{print $1}'` : `powershell.exe -c '(Test-Connection -ComputerName $env:computername -count 1).ipv4address.IPAddressToString' | dos2unix`).chomp
43
+ elsif Sct::Helper.is_mac_os?
44
+ host_machine_IP = `ipconfig getifaddr $(route get 8.8.8.8 | awk '/interface: / {print $2; }')`.chomp
45
+ else
46
+ host_machine_IP = `hostname -I | awk '{print $1}'`.chomp
47
+ end
48
+
49
+ env = {
50
+ "PUID" => `id -u`.chomp,
51
+ "PGID" => `id -g`.chomp,
52
+ "HOST_MACHINE_IP" => host_machine_IP,
53
+ "IDE_DEBUG_KEY" => "PHPSTORM",
54
+ "IDE_DEBUG_SERVER" => "docker",
55
+ }
42
56
 
43
57
  if options.pull
44
58
  return unless dc_dev "pull"
@@ -1,15 +1,15 @@
1
1
  require 'yaml'
2
2
 
3
- module Shell
4
- class Runner
3
+ module Sct
4
+ class ShellCommand
5
5
 
6
6
  def error message
7
7
  UI.error message
8
8
  exit 1
9
9
  end
10
10
 
11
- def launch
12
- command = ARGV.empty? ? "sh" : ARGV.join(" ")
11
+ def execute args, options
12
+ command = args.empty? ? "sh" : args.join(" ")
13
13
 
14
14
  file = "docker-compose.dev.yml"
15
15
 
@@ -41,7 +41,9 @@ module Shell
41
41
  end
42
42
  end
43
43
 
44
- system "docker exec -it --user $(id -u):$(id -g) #{container} #{command}"
44
+ user = options.root ? "root:root" : "$(id -u):$(id -g)"
45
+
46
+ system "docker exec -it --user #{user} #{container} #{command}"
45
47
  end
46
48
 
47
49
  end
@@ -35,6 +35,11 @@ module Sct
35
35
  command :'shell' do |c|
36
36
  c.syntax = 'sct shell'
37
37
  c.description = 'run commands from the shell using docker containers'
38
+ c.option '--root', 'run as root user in the container'
39
+
40
+ c.action do |args, options|
41
+ Sct::ShellCommand.new.execute args, options
42
+ end
38
43
  end
39
44
 
40
45
  command :'dev' do |c|
@@ -42,12 +47,25 @@ module Sct
42
47
  c.description = 'start development container in the current directory'
43
48
  c.option '--build', '(re)build images before starting'
44
49
  c.option '--pull', 'pull latest images before starting'
50
+ c.option '--wsl-debugger', 'use if running the PHP debugger from WSL'
45
51
 
46
52
  c.action do |args, options|
47
53
  Sct::DevCommand.new.execute args, options
48
54
  end
49
55
  end
50
56
 
57
+ command :'database-pull' do |c|
58
+ c.syntax = 'sct database pull'
59
+ c.description = 'pull database changes for proactive frame and proactive config'
60
+ c.option '--proactive-frame', 'pull the database changes from proactive-frame'
61
+ c.option '--proactive-config', 'pull the database changes from proactive-config'
62
+
63
+ c.action do |args, options|
64
+ UI.important("Trying to pull database")
65
+ Sct::DatabasePullCommand.new.execute args, options
66
+ end
67
+ end
68
+
51
69
  run!
52
70
  end
53
71
  end
data/sct/lib/sct/tools.rb CHANGED
@@ -1,12 +1,9 @@
1
1
  module Sct
2
2
  TOOLS = [
3
3
  :sct,
4
- :shell,
5
4
  :cluster
6
5
  ]
7
-
6
+
8
7
  # a list of all the config files we currently expect
9
- TOOL_CONFIG_FILES = [
10
-
11
- ]
12
- end
8
+ TOOL_CONFIG_FILES = []
9
+ end
@@ -1,3 +1,3 @@
1
1
  module Sct
2
- VERSION = "1.0.4"
2
+ VERSION = "1.0.9"
3
3
  end
@@ -66,6 +66,10 @@ module SctCore
66
66
  return !ENV["SUDO_USER"].nil? && !ENV["SUDO_USER"].empty?
67
67
  end
68
68
 
69
+ def self.is_mac_os?
70
+ return self.operating_system == MAC_OS
71
+ end
72
+
69
73
  def self.is_windows?
70
74
  return self.operating_system == WINDOWS
71
75
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sct
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reshad Farid
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-01 00:00:00.000000000 Z
11
+ date: 2021-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colored
@@ -100,6 +100,20 @@ dependencies:
100
100
  - - "<"
101
101
  - !ruby/object:Gem::Version
102
102
  version: 3.0.0
103
+ - !ruby/object:Gem::Dependency
104
+ name: gitlab
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 4.17.0
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 4.17.0
103
117
  - !ruby/object:Gem::Dependency
104
118
  name: tty-screen
105
119
  requirement: !ruby/object:Gem::Requirement
@@ -206,8 +220,10 @@ files:
206
220
  - sct/lib/sct/.DS_Store
207
221
  - sct/lib/sct/cli_tools_distributor.rb
208
222
  - sct/lib/sct/command.rb
223
+ - sct/lib/sct/commands/databasepull.rb
209
224
  - sct/lib/sct/commands/dev.rb
210
225
  - sct/lib/sct/commands/mysqlproxy.rb
226
+ - sct/lib/sct/commands/shell.rb
211
227
  - sct/lib/sct/commands_generator.rb
212
228
  - sct/lib/sct/tools.rb
213
229
  - sct/lib/sct/version.rb
@@ -223,10 +239,6 @@ files:
223
239
  - sct_core/lib/sct_core/ui/interface.rb
224
240
  - sct_core/lib/sct_core/ui/ui.rb
225
241
  - sct_core/lib/sct_core/update_checker/update_checker.rb
226
- - shell/lib/shell.rb
227
- - shell/lib/shell/commands_generator.rb
228
- - shell/lib/shell/module.rb
229
- - shell/lib/shell/runner.rb
230
242
  homepage: https://gitlab.com/proactive-software/packages/sct
231
243
  licenses:
232
244
  - MIT
@@ -238,7 +250,6 @@ post_install_message:
238
250
  rdoc_options: []
239
251
  require_paths:
240
252
  - cluster/lib
241
- - shell/lib
242
253
  - sct/lib
243
254
  - sct_core/lib
244
255
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -252,7 +263,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
252
263
  - !ruby/object:Gem::Version
253
264
  version: '0'
254
265
  requirements: []
255
- rubygems_version: 3.0.8
266
+ rubygems_version: 3.1.2
256
267
  signing_key:
257
268
  specification_version: 4
258
269
  summary: Spend Cloud Tool.
data/shell/lib/shell.rb DELETED
@@ -1,2 +0,0 @@
1
- require_relative 'shell/runner'
2
- require_relative 'shell/module'
@@ -1,14 +0,0 @@
1
- require_relative 'runner'
2
-
3
- module Shell
4
- class CommandsGenerator
5
-
6
- def self.start
7
- self.new.run
8
- end
9
-
10
- def run
11
- Shell::Runner.new.launch
12
- end
13
- end
14
- end
@@ -1,9 +0,0 @@
1
- require 'sct_core/helper'
2
-
3
- module Shell
4
-
5
- # import the helper functionality from SCT
6
- Helpers = Sct::Helper
7
- UI = Sct::UI
8
-
9
- end