sct 1.0.2 → 1.0.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: ea8384d7d7c3ab04eb3d184f66953b6f4cc4ce7e669da1ce82533d8964fa2f3a
4
- data.tar.gz: 45e6800f8369e921f19452c191f27c9ced727676923952590fc9af8ad9bad558
3
+ metadata.gz: 77a9f9b0da2f262d9c336ee3f6f912bb0e097f0caf9d91adbe1b3dd9ad33059d
4
+ data.tar.gz: 58cbc6da8d20cb35fdc6f1d12d326472ff0a40466010f7b9e4130c7f201a52ec
5
5
  SHA512:
6
- metadata.gz: e87a61ac439d0e0737963d42bba9f81e0cb43b529fa78a6d1e638e56356760d050daa3fbb84dad74f8ba550277d2cd59a18434996d9cf04018ec21ba57776594
7
- data.tar.gz: 8d0bd664311e72d1b980fb0485c90d3da29ce302f2d2045df76595ca0d9747811d4732fe70974c68d39aa3a9675338434cfcbbf3079335ed54e1b1a136d3830b
6
+ metadata.gz: d8379c969766240db807fb92dea072eea56d7e3e0f0148ee2e9c4318e32eb60903cc5bd9a20353ac5bb031582795e7f20661cfe7a7829151dd6d1d5a12264d57
7
+ data.tar.gz: 30eded070cff1db7d533c2d3f36e850204ff78c7be2696d504e0d4e1eb86f8564da26278f04621b021f3cfb2f29805f4ece5d9c6a3b156a7f6c145118acfb74e
@@ -24,6 +24,8 @@ module Cluster
24
24
  run_dc "build #{options.pull ? "--pull" : ""}"
25
25
  end
26
26
 
27
+ run "docker container prune -f"
28
+
27
29
  run_dc "up --detach"
28
30
 
29
31
  if options.pull or options.build
@@ -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,34 @@
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'] || 'master'
10
+
11
+ # We need to set this locally, so that we don't save this at the repository
12
+ pipeline_endpoint = ENV['CI_MERGE_REQUEST_PIPELINE']
13
+ if not pipeline_endpoint
14
+ error "Pipeline endpoint not set"
15
+ end
16
+
17
+ # We need to set this locally, so that we don't save this at the repository
18
+ private_token = ENV['CI_PRIVATE_TOKEN']
19
+ if not private_token
20
+ error "Private token not set"
21
+ end
22
+
23
+ if options.proactive_frame
24
+ UI.important("Requesting to pull database for proactive frame")
25
+ process_request = `curl -X POST -F token=#{private_token} -F ref=#{branch} -F variables[DB_PULL_FRAME]=true #{pipeline_endpoint}`
26
+ end
27
+
28
+ if options.proactive_config
29
+ UI.important("Requesting to pull database for proactive config")
30
+ process_request = `curl -X POST -F token=#{private_token} -F ref=#{branch} -F variables[DB_PULL_CONFIG]=true #{pipeline_endpoint}`
31
+ end
32
+ end
33
+ end
34
+ end
@@ -11,11 +11,11 @@ module Sct
11
11
  end
12
12
 
13
13
  def dc command, env = {}
14
- system env, "docker-compose #{command}"
14
+ system env, "docker-compose -f ~/development/spend-cloud/docker-compose.yml #{command}"
15
15
  end
16
16
 
17
17
  def dc_dev command, env = {}
18
- dc "-f #{@@file} #{command}", env
18
+ system env, "docker-compose -f #{@@file} #{command}"
19
19
  end
20
20
 
21
21
  def manifest
@@ -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.2"
2
+ VERSION = "1.0.8"
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.2
4
+ version: 1.0.8
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-01-28 00:00:00.000000000 Z
11
+ date: 2021-06-17 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
@@ -237,7 +249,6 @@ metadata:
237
249
  post_install_message:
238
250
  rdoc_options: []
239
251
  require_paths:
240
- - shell/lib
241
252
  - cluster/lib
242
253
  - sct/lib
243
254
  - sct_core/lib
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