sct 1.0.0 → 1.0.6

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: 8be150a1d5ddc9339df696d2f7db5d6056dfdba0fbb48884e57cfacc700b79ea
4
- data.tar.gz: d6fc67a9a3af7c51bf542353f476ec59b60f1c40e7387da64910c4287be857c7
3
+ metadata.gz: 1fc131f8bc317386225d5f4fc54e8a3949b890ed962478c76e4d0cf61a6c24c7
4
+ data.tar.gz: 8b5b694782cb53883193fcb79192b016e0a53085e492fa3ddd2222348186df16
5
5
  SHA512:
6
- metadata.gz: e5046d7b3acb18f4cce8b17b7a8d32586758dfda47ba696b7e0f36192fd5b51d132fe2a770768410728279c08b70ebfeb263a79b82bad5531d889b3fe0b733cc
7
- data.tar.gz: 3502a15df6d47b547af6dc7a15cd175a23f45700c6771ccf66055542d2df2d21baadb7c26c03c0736d469ead3108c5b09f968adc318c1d572fa036fea047f454
6
+ metadata.gz: d05370cc4b9c87de1d7dcdd2895003b8ef3c3d80175e1f5280ce28e66ab2d004387db2f949fbefd867627481171b64392763203105907567220936e49e794561
7
+ data.tar.gz: a6f5276d96f817ee6ef80b6323f6a184eb72a389a0fd99c2ed6595c9583ebbc67114f575bc19e2deaab8bed0f4293d9d48c2b9e26e977abfb847af80e606d859
@@ -63,15 +63,6 @@ module Cluster
63
63
  end
64
64
  end
65
65
 
66
- command :pull do |c|
67
- c.syntax = 'sct cluster pull'
68
- c.description = 'pull new image versions'
69
-
70
- c.action do |args, options|
71
- Cluster::Runner.new.pull
72
- end
73
- end
74
-
75
66
  command :status do |c|
76
67
  c.syntax = 'sct cluster status'
77
68
  c.description = 'see the status of your cluster'
@@ -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
@@ -50,11 +52,6 @@ module Cluster
50
52
  start args, options
51
53
  end
52
54
 
53
- def pull
54
- run_dc "pull"
55
- run "docker image prune -f"
56
- end
57
-
58
55
  def status
59
56
  run_dc "ps"
60
57
  end
@@ -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
@@ -3,24 +3,34 @@ require 'yaml'
3
3
  module Sct
4
4
  class DevCommand
5
5
 
6
+ @@file = "docker-compose.dev.yml"
7
+
6
8
  def error message
7
9
  UI.error message
8
10
  exit 1
9
11
  end
10
12
 
11
- def execute args, options
12
- file = "docker-compose.dev.yml"
13
+ def dc command, env = {}
14
+ system env, "docker-compose -f ~/development/spend-cloud/docker-compose.yml #{command}"
15
+ end
13
16
 
14
- if !File.exist? file
15
- error "Could not find file '#{file}'."
17
+ def dc_dev command, env = {}
18
+ system env, "docker-compose -f #{@@file} #{command}"
19
+ end
20
+
21
+ def manifest
22
+ if !File.exist? @@file
23
+ error "Could not find file '#{@@file}'."
16
24
  end
17
25
 
18
- manifest = YAML.load File.read file
26
+ YAML.load File.read @@file
27
+ end
19
28
 
29
+ def execute args, options
20
30
  services = manifest["services"].to_a
21
31
 
22
32
  if services.length != 1
23
- error "Currently sct only supports a single service declaration in '#{file}'. Contact the infra guild if you consider this a limitation."
33
+ error "Currently sct only supports a single service declaration in '#{@@file}'. Contact the infra guild if you consider this a limitation."
24
34
  end
25
35
 
26
36
  service, service_spec = services.first
@@ -28,15 +38,31 @@ module Sct
28
38
  container = service_spec["container_name"]
29
39
  command = service_spec["command"] || ""
30
40
 
41
+ env = {
42
+ "PUID" => `id -u`.chomp,
43
+ "PGID" => `id -g`.chomp,
44
+ "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,
45
+ "IDE_DEBUG_KEY" => "PHPSTORM",
46
+ "IDE_DEBUG_SERVER" => "docker",
47
+ }
48
+
49
+ if options.pull
50
+ return unless dc_dev "pull"
51
+ end
52
+
31
53
  if options.build
32
- return unless system "docker-compose -f #{file} build #{options.pull ? "--pull" : ""}"
54
+ return unless dc_dev "build #{options.pull ? "--pull" : ""}", env
55
+ end
56
+
57
+ if options.pull or options.build
58
+ system "docker image prune -f"
33
59
  end
34
60
 
35
- return unless system "docker-compose -f ~/development/spend-cloud/docker-compose.yml rm --stop --force #{service}"
61
+ return unless dc "rm --stop --force #{service}"
36
62
 
37
- system "docker-compose -f #{file} run --rm --service-ports --name #{container} #{service} #{command}"
63
+ dc_dev "run --rm --service-ports --name #{container} #{service} #{command}", env
38
64
 
39
- system "docker-compose -f ~/development/spend-cloud/docker-compose.yml up --detach #{service}"
65
+ dc "up --detach #{service}"
40
66
  end
41
67
 
42
68
  end
@@ -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 #{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,13 +35,19 @@ 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|
41
46
  c.syntax = 'sct dev'
42
47
  c.description = 'start development container in the current directory'
43
- c.option '--build', '(re)build image from Dockerfile before starting'
44
- c.option '--pull', 'pull latest base image from Dockerfile before (re)building. only used in combination with --build flag'
48
+ c.option '--build', '(re)build images before starting'
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
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.0"
2
+ VERSION = "1.0.6"
3
3
  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.0
4
+ version: 1.0.6
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-14 00:00:00.000000000 Z
11
+ date: 2021-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colored
@@ -208,6 +208,7 @@ files:
208
208
  - sct/lib/sct/command.rb
209
209
  - sct/lib/sct/commands/dev.rb
210
210
  - sct/lib/sct/commands/mysqlproxy.rb
211
+ - sct/lib/sct/commands/shell.rb
211
212
  - sct/lib/sct/commands_generator.rb
212
213
  - sct/lib/sct/tools.rb
213
214
  - sct/lib/sct/version.rb
@@ -223,10 +224,6 @@ files:
223
224
  - sct_core/lib/sct_core/ui/interface.rb
224
225
  - sct_core/lib/sct_core/ui/ui.rb
225
226
  - 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
227
  homepage: https://gitlab.com/proactive-software/packages/sct
231
228
  licenses:
232
229
  - MIT
@@ -240,7 +237,6 @@ require_paths:
240
237
  - cluster/lib
241
238
  - sct/lib
242
239
  - sct_core/lib
243
- - shell/lib
244
240
  required_ruby_version: !ruby/object:Gem::Requirement
245
241
  requirements:
246
242
  - - ">="
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