neptuno 1.0.5 → 1.0.7

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
- SHA256:
3
- metadata.gz: 9fae466d455aa821936b90939ba0a855a643ed38a3f04ae348aad5084a222a69
4
- data.tar.gz: edb31dfae133228fe6a8e0c67ffdd21e2f2cc6b101e90a3df69fbe35ed24b2be
2
+ SHA1:
3
+ metadata.gz: 90f7dd1ce363180b71d75497238fab6f03de0242
4
+ data.tar.gz: 61fdc2365b4d5ed48509025ac5f902a85bdd7e53
5
5
  SHA512:
6
- metadata.gz: 38e0e81a410f573bef3fc80185e3a43f32e927f13d58fb736bd24dc7174e9b4030b9b4f9bfef985555b1af868f81dc52b8f125468019751e887444314734cab2
7
- data.tar.gz: e31f2426d4b53f8ea75812e3a87f714fc926ffa7f5b5d69199d5f2301498ddbab1ecfceebbd754083b492e50714eb9c2db9983edc4aad8aa6cf2910635ef780f
6
+ metadata.gz: 6b718db227c2c014f16c14be6030e9410862b83134c92f78f4f4c8f4a6f6c7a5fcaefaf2c1828782cf6e4d3a88af58004cafcd6df09dfb35237ad2e020935e85
7
+ data.tar.gz: 37094a434e06e32322e880ab38815e0946ffde764d76705c3d99c8eb01253d2858897d13e62bda4ed10da6b5b7960a7c4a0ce37a4ed12620c6af99d456468dee
@@ -16,10 +16,10 @@ jobs:
16
16
 
17
17
  steps:
18
18
  - uses: actions/checkout@v3
19
- - name: Set up Ruby 2.6
20
- uses: actions/setup-ruby@v1
19
+ - name: Set up Ruby 2.0.0
20
+ uses: ruby/setup-ruby@v1
21
21
  with:
22
- ruby-version: 2.6.x
22
+ ruby-version: 2.0.0
23
23
 
24
24
  - name: Publish to RubyGems
25
25
  run: |
data/Gemfile CHANGED
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source 'https://rubygems.org'
3
+ source "https://rubygems.org"
4
4
 
5
5
  # Specify your gem's dependencies in neptuno.gemspec
6
6
  gemspec
7
7
 
8
- gem 'rake'
8
+ gem "rake"
9
9
 
10
- gem 'minitest'
10
+ gem "minitest"
11
11
 
12
- gem 'rubocop', require: false
12
+ gem "rubocop", require: false
data/Gemfile.lock CHANGED
@@ -1,10 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- neptuno (1.0.4)
4
+ neptuno (1.0.7)
5
5
  dotiw
6
6
  dry-cli
7
7
  hirb
8
+ psych (< 4)
8
9
  tty-command
9
10
  tty-config
10
11
  tty-file
@@ -16,7 +17,7 @@ PATH
16
17
  GEM
17
18
  remote: https://rubygems.org/
18
19
  specs:
19
- activesupport (7.0.3.1)
20
+ activesupport (7.0.4)
20
21
  concurrent-ruby (~> 1.0, >= 1.0.2)
21
22
  i18n (>= 1.6, < 2)
22
23
  minitest (>= 5.1)
@@ -29,12 +30,12 @@ GEM
29
30
  dotiw (5.3.3)
30
31
  activesupport
31
32
  i18n
32
- dry-cli (0.7.0)
33
+ dry-cli (1.0.0)
33
34
  hirb (0.7.3)
34
35
  i18n (1.12.0)
35
36
  concurrent-ruby (~> 1.0)
36
37
  json (2.6.2)
37
- minitest (5.16.2)
38
+ minitest (5.16.3)
38
39
  minitest-reporters (1.5.0)
39
40
  ansi
40
41
  builder
@@ -45,29 +46,30 @@ GEM
45
46
  ast (~> 2.4.1)
46
47
  pastel (0.8.0)
47
48
  tty-color (~> 0.5)
49
+ psych (3.3.4)
48
50
  rainbow (3.1.1)
49
51
  rake (13.0.6)
50
- regexp_parser (2.5.0)
52
+ regexp_parser (2.6.0)
51
53
  rexml (3.2.5)
52
- rubocop (1.35.0)
54
+ rubocop (1.39.0)
53
55
  json (~> 2.3)
54
56
  parallel (~> 1.10)
55
57
  parser (>= 3.1.2.1)
56
58
  rainbow (>= 2.2.2, < 4.0)
57
59
  regexp_parser (>= 1.8, < 3.0)
58
60
  rexml (>= 3.2.5, < 4.0)
59
- rubocop-ast (>= 1.20.1, < 2.0)
61
+ rubocop-ast (>= 1.23.0, < 2.0)
60
62
  ruby-progressbar (~> 1.7)
61
63
  unicode-display_width (>= 1.4.0, < 3.0)
62
- rubocop-ast (1.21.0)
64
+ rubocop-ast (1.23.0)
63
65
  parser (>= 3.1.1.0)
64
- rubocop-performance (1.14.3)
66
+ rubocop-performance (1.15.0)
65
67
  rubocop (>= 1.7.0, < 2.0)
66
68
  rubocop-ast (>= 0.4.0)
67
69
  ruby-progressbar (1.11.0)
68
- standard (1.16.0)
69
- rubocop (= 1.35.0)
70
- rubocop-performance (= 1.14.3)
70
+ standard (1.18.0)
71
+ rubocop (= 1.39.0)
72
+ rubocop-performance (= 1.15.0)
71
73
  tty-color (0.6.0)
72
74
  tty-command (0.10.1)
73
75
  pastel (~> 0.8)
@@ -90,9 +92,9 @@ GEM
90
92
  tty-which (0.5.0)
91
93
  tzinfo (2.0.5)
92
94
  concurrent-ruby (~> 1.0)
93
- unicode-display_width (2.2.0)
95
+ unicode-display_width (2.3.0)
94
96
  wisper (2.0.1)
95
- zeitwerk (2.6.0)
97
+ zeitwerk (2.6.6)
96
98
 
97
99
  PLATFORMS
98
100
  x86_64-darwin-21
@@ -0,0 +1,84 @@
1
+ ---
2
+ version: '3'
3
+
4
+ volumes:
5
+ db_data:
6
+ redis_data:
7
+ rails_demo_bundle_cache:
8
+
9
+ services:
10
+ ##########################
11
+ # Reverse Proxy
12
+ ##########################
13
+ nginx:
14
+ build:
15
+ context: .
16
+ dockerfile: ./dockerfiles/nginx/Dockerfile
17
+ ports:
18
+ - 80:80
19
+
20
+ ##########################
21
+ # Database
22
+ ##########################
23
+ db:
24
+ image: postgres
25
+ restart: always
26
+ environment:
27
+ POSTGRES_PASSWORD: password
28
+
29
+ ##########################
30
+ # Message Queue
31
+ ##########################
32
+ mq:
33
+ image: redis:alpine
34
+ volumes:
35
+ - redis_data:/data
36
+
37
+ ##########################
38
+ # Rails demo
39
+ ##########################
40
+ rails_demo:
41
+ healthcheck:
42
+ test: "ls ./tmp/ | grep ready.txt"
43
+ stdin_open: true
44
+ tty: true
45
+ command: ash
46
+ build:
47
+ context: .
48
+ dockerfile: ./dockerfiles/rails_demo/Dockerfile
49
+ volumes:
50
+ - ~/.ssh:/root/.ssh:ro
51
+ - ~/.bundle:/root/.bundle
52
+ - ~/.npmrc:/root/.npmrc:ro
53
+ - rails_demo_bundle_cache:/bundle:delegated
54
+ - ./services/rails_demo:/usr/src/app:cached
55
+ ports:
56
+ - "3000:80"
57
+ - "4000:4000"
58
+ depends_on:
59
+ - nginx
60
+ - mq
61
+ - db
62
+ command: bash
63
+
64
+ ##########################
65
+ # Selenium
66
+ ##########################
67
+ selenium-hub:
68
+ image: selenium/hub:latest
69
+ container_name: selenium-hub
70
+ ports:
71
+ - "4442:4442"
72
+ - "4443:4443"
73
+ - "4444:4444"
74
+
75
+ chrome:
76
+ image: selenium/node-chrome:dev
77
+ shm_size: 2gb
78
+ depends_on:
79
+ - selenium-hub
80
+ environment:
81
+ - SE_EVENT_BUS_HOST=selenium-hub
82
+ - SE_EVENT_BUS_PUBLISH_PORT=4442
83
+ - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
84
+ - JAVA_OPTS=-Dwebdriver.chrome.whitelistedIps=
data/bin/neptuno.yml ADDED
@@ -0,0 +1,14 @@
1
+ ---
2
+ mode: ide
3
+ procfile_manager: overmind
4
+ auto_restart_procs:
5
+ - web
6
+ - webpacker
7
+ configured_services: ''
8
+ services:
9
+ - rails_demo
10
+ - db
11
+ - mq
12
+ - nginx
13
+ - selenium-hub
14
+ - chrome
@@ -12,7 +12,6 @@ module Neptuno
12
12
  argument :services, type: :array, required: false, desc: 'Optional list of services'
13
13
 
14
14
  def call(services: [], **options)
15
- dd = config.fetch('docker_delimiter') || '-'
16
15
  multi_spinner = ::TTY::Spinner::Multi.new('[:spinner] Services')
17
16
  spinners = {}
18
17
  count = 0
@@ -28,7 +27,7 @@ module Neptuno
28
27
  ps = `cd #{neptuno_path} && docker compose ps`.split("\n").compact.select { |x| x.match(/^\s*#{project}/) }
29
28
 
30
29
  running_services.sort.each do |service|
31
- service_ps = ps.find { |s| s.include?(project.to_s) && s.include?("#{dd}#{service}#{dd}") }
30
+ service_ps = ps.find {|s| s =~ /#{project}[-_]#{service}[-_]\d\s/ }
32
31
 
33
32
  status = :dead if service_ps.to_s.include?('exited')
34
33
  status = :starting if service_ps.to_s.include?('starting')
@@ -9,15 +9,15 @@ module Neptuno
9
9
  include TTY::File
10
10
  include Neptuno::TTY::Command
11
11
 
12
- ABORT_MESSAGE = 'fatal: not a Neptuno repository (or any of the parent directories)'
12
+ ABORT_MESSAGE = "fatal: not a Neptuno repository (or any of the parent directories)"
13
13
 
14
14
  def initialize
15
- abort ABORT_MESSAGE if neptuno_path == ''
15
+ abort ABORT_MESSAGE if neptuno_path == ""
16
16
  config.append_path(neptuno_path)
17
17
  config.read
18
18
  end
19
19
 
20
- def command_service_to(request, service_as_args: '')
20
+ def command_service_to(request, service_as_args: "")
21
21
  chosen_service ||= service_as_args&.empty? ? nil : service_as_args
22
22
  chosen_service ||= service if in_service?
23
23
  chosen_service ||= prompt.select("Command service to #{request}:", services)
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Neptuno
4
+ module CLI
5
+ # Init Neptuno files
6
+
7
+ class Clone < Dry::CLI::Command
8
+ desc 'Clone a neptuno compliant project'
9
+ def call(**options)
10
+ git_url = options[:args].first
11
+ args_path = options[:args].second
12
+ path = args_path || git_url.split('/').last.split('.').first
13
+ `git clone --recurse-submodules #{git_url}`
14
+ `cd #{path}`
15
+ `cd #{path} && neptuno services update -am`
16
+ puts "Building Docker images"
17
+ `cd #{path} && neptuno build -a`
18
+ puts "Starting Docker containers"
19
+ `cd #{path} && neptuno up -a`
20
+ puts "Starting service processes"
21
+ `cd #{path} && neptuno start -a`
22
+ end
23
+ end
24
+ end
25
+ end
@@ -10,8 +10,7 @@ module Neptuno
10
10
 
11
11
  desc 'Initializes a Neptuno project folder structure'
12
12
 
13
- WORK_TREE = { '.' => ['docker-compose.yml', '.tmuxinator.yml',
14
- { 'services' => [], 'dockerfiles' => [], 'procfiles' => [], 'environments' => [] }] }.freeze
13
+ WORK_TREE = { '.' => [{ 'services' => [], 'dockerfiles' => [], 'procfiles' => [], 'environments' => [] }] }.freeze
15
14
 
16
15
  CONFIG = nil
17
16
 
@@ -21,6 +20,7 @@ module Neptuno
21
20
  config.set(:configured_services, value: '')
22
21
  config.set(:services, value: [])
23
22
  config.write(create: true, force: true)
23
+ `cp #{File.expand_path("../../templates", __FILE__)}/* ./`
24
24
  end
25
25
  end
26
26
  end
@@ -61,6 +61,9 @@ module Neptuno
61
61
  branches = service_current_branches
62
62
  dates = last_commit_date
63
63
 
64
+ x = docker_compose_services - neptuno_procs.select{|k,v| v.length > 0}.keys
65
+ x.each{|y| neptuno_procs[y] = ""}
66
+
64
67
  procs = neptuno_procs.map do |name, *processes|
65
68
  display_date = get_display_date(dates[name], options.fetch(:relative))
66
69
  state = docker_procs[name]&.match?(/running/) ? 'on' : nil
data/lib/neptuno/cli.rb CHANGED
@@ -10,6 +10,7 @@ module Neptuno
10
10
 
11
11
  register 'version', Version, aliases: ['v', '-v', '--version', 'info']
12
12
  register 'init', Init
13
+ register 'clone', Clone
13
14
  register 'ls', List, aliases: ['ps']
14
15
  register 'activate', Activate, aliases: ['a']
15
16
  register 'config', Configure, aliases: %w[configure conf cc]
@@ -9,10 +9,13 @@ module Neptuno
9
9
  option :up, type: :boolean, default: false, desc: 'Try to start containers before connecting'
10
10
 
11
11
  def call(**options)
12
- dd = config.fetch('docker_delimiter') || '-'
13
12
  command_service_to('attach', service_as_args: options[:args].first) do |service, project|
14
13
  system("cd #{neptuno_path} && docker compose up -d #{service}") if options.fetch(:up)
15
- system("cd #{neptuno_path} && docker attach #{project}#{dd}#{service}#{dd}1")
14
+ success = system("cd #{neptuno_path} && docker attach #{project}_#{service}_1")
15
+ unless success
16
+ puts "Trying #{project}-#{services.first}-1"
17
+ system("cd #{neptuno_path} && docker attach #{project}-#{service}-1")
18
+ end
16
19
  end
17
20
  end
18
21
  end
@@ -11,6 +11,7 @@ module Neptuno
11
11
 
12
12
  def call(services: [], **options)
13
13
  command_services_to('build', all: options.fetch(:all), services_as_args: services) do |services|
14
+ make_service_files(services)
14
15
  system("cd #{neptuno_path} && docker compose build #{services.join(' ')}")
15
16
  end
16
17
  end
@@ -12,6 +12,7 @@ module Neptuno
12
12
 
13
13
  def call(services: [], **options)
14
14
  command_services_to('go down', all: options.fetch(:all), services_as_args: services) do |services|
15
+ make_service_files(services)
15
16
  system("cd #{neptuno_path} && docker compose stop -t 0 #{services.join(' ')}")
16
17
  system("cd #{neptuno_path} && docker compose rm -f #{services.join(' ')}")
17
18
  system("cd #{neptuno_path} && tmux kill-session -t neptuno") if options.fetch(:tmux)
@@ -7,9 +7,12 @@ module Neptuno
7
7
  desc "Docker: Show a container's log"
8
8
 
9
9
  def call(**options)
10
- dd = config.fetch('docker_delimiter') || '-'
11
10
  command_service_to('log', service_as_args: options[:args].first) do |service, project|
12
- system("cd #{neptuno_path} && docker logs -f #{project}#{dd}#{service}#{dd}1")
11
+ success = system("cd #{neptuno_path} && docker logs -f #{project}_#{service}_1")
12
+ unless success
13
+ puts "Trying #{project}-#{services.first}-1"
14
+ system("cd #{neptuno_path} && docker logs -f #{project}-#{service}-1")
15
+ end
13
16
  end
14
17
  end
15
18
  end
@@ -11,6 +11,7 @@ module Neptuno
11
11
 
12
12
  def call(services: [], **options)
13
13
  command_services_to('restart', all: options.fetch(:all), services_as_args: services) do |services|
14
+ make_service_files(services)
14
15
  system("cd #{neptuno_path} && docker compose stop -t 0 #{services.join(' ')}")
15
16
  system("cd #{neptuno_path} && docker compose rm -f #{services.join(' ')}")
16
17
  system("cd #{neptuno_path} && docker compose build #{services.join(' ')}")
@@ -11,10 +11,14 @@ module Neptuno
11
11
  argument :services, type: :array, required: false, desc: 'Optional list of services'
12
12
 
13
13
  def call(services: [], **options)
14
- dd = config.fetch('docker_delimiter') || '-'
15
14
  command_services_to('come up', all: options.fetch(:all), services_as_args: services) do |services, project|
15
+ make_service_files(services)
16
16
  system("cd #{neptuno_path} && docker compose up -d #{services.join(' ')}")
17
- system("cd #{neptuno_path} && docker logs -f #{project}#{dd}#{services.first}#{dd}1") if options.fetch(:log)
17
+ success = system("cd #{neptuno_path} && docker logs -f #{project}_#{services.first}_1") if options.fetch(:log)
18
+ unless success
19
+ puts "Trying #{project}-#{services.first}-1"
20
+ system("cd #{neptuno_path} && docker logs -f #{project}-#{services.first}-1") if options.fetch(:log)
21
+ end
18
22
  end
19
23
  end
20
24
  end
@@ -15,7 +15,6 @@ module Neptuno
15
15
  argument :services, type: :array, required: false, desc: 'Optional list of services'
16
16
 
17
17
  def call(services: [], **options)
18
- dd = config.fetch('docker_delimiter') || '-'
19
18
  multi_spinner = ::TTY::Spinner::Multi.new('[:spinner] Services')
20
19
  spinners = {}
21
20
  count = 0
@@ -31,7 +30,7 @@ module Neptuno
31
30
  ps = `cd #{neptuno_path} && docker-compose ps`.split("\n").compact.select { |x| x.match(/^\s*#{project}/) }
32
31
 
33
32
  running_services.sort.each do |service|
34
- service_ps = ps.find { |s| s.include?(project.to_s) && s.include?("#{dd}#{service}#{dd}") }
33
+ service_ps = ps.find {|s| s =~ /#{project}[-_]#{service}[-_]\d\s/ }
35
34
 
36
35
  status = :dead if service_ps.to_s.include?('exited')
37
36
  status = :starting if service_ps.to_s.include?('starting')
@@ -42,7 +41,7 @@ module Neptuno
42
41
  case status
43
42
  when :force
44
43
  spinners[service].success
45
- `cd #{neptuno_path}/procfiles/#{service} && overmind start -D -N > /dev/null 2>&`
44
+ `cd #{neptuno_path}/procfiles/#{service} && overmind start -D -N #{auto_restart_procs.unshift("-r").join(" ") if auto_restart_procs.to_a.count > 0} > /dev/null 2>&`
46
45
  when :dead
47
46
  spinners[service].update(state: 'dead ')
48
47
  spinners[service].error
@@ -78,7 +77,7 @@ module Neptuno
78
77
  end
79
78
  else
80
79
  spinners.select { |_k, v| v.instance_variable_get(:@succeeded) == :success }.each_key do |service|
81
- system("cd #{neptuno_path}/procfiles/#{service} && overmind start -D -N > /dev/null 2>&1")
80
+ system("cd #{neptuno_path}/procfiles/#{service} && overmind start -D -N #{auto_restart_procs.unshift("-r").join(" ") if auto_restart_procs.to_a.count > 0} > /dev/null 2>&1")
82
81
  end
83
82
  sleep(5)
84
83
  spinner.stop
@@ -90,7 +89,7 @@ module Neptuno
90
89
  rescue RuntimeError
91
90
  system("cd #{neptuno_path} && docker compose exec #{service} kill -9 -1")
92
91
  system("cd #{neptuno_path}/procfiles/#{service} && rm .overmind.sock > /dev/null 2>&1")
93
- system("cd #{neptuno_path}/procfiles/#{service} && overmind start -D -N > /dev/null 2>&1")
92
+ system("cd #{neptuno_path}/procfiles/#{service} && overmind start -D -N #{auto_restart_procs.unshift("-r").join(" ") if auto_restart_procs.to_a.count > 0} > /dev/null 2>&1")
94
93
  retry
95
94
  end
96
95
  end
@@ -13,7 +13,6 @@ module Neptuno
13
13
  argument :services, type: :array, required: false, desc: 'Optional list of services'
14
14
 
15
15
  def call(services: [], **options)
16
- dd = config.fetch('docker_delimiter') || '-'
17
16
  multi_spinner = ::TTY::Spinner::Multi.new('[:spinner] Services')
18
17
  spinners = {}
19
18
  count = 0
@@ -29,7 +28,7 @@ module Neptuno
29
28
  ps = `cd #{neptuno_path} && docker compose ps`.split("\n").compact.select { |x| x.match(/^\s*#{project}/) }
30
29
 
31
30
  running_services.sort.each do |service|
32
- service_ps = ps.find { |s| s.include?(project.to_s) && s.include?("#{dd}#{service}#{dd}") }
31
+ service_ps = ps.find {|s| s =~ /#{project}[-_]#{service}[-_]\d\s/ }
33
32
 
34
33
  status = :dead if service_ps.to_s.include?('exited')
35
34
  status = :starting if service_ps.to_s.include?('starting')
@@ -0,0 +1,44 @@
1
+ # ./.tmuxinator.yml
2
+
3
+ <% if YAML.load_file('neptuno.yml')["procfile_manager"] == "tmux" %>
4
+ name: <%= @args[0] %>
5
+ root: .
6
+ attach: false
7
+ windows:
8
+ <% File.read("procfiles/#{args[0]}/Procfile").each_line do |proc| %>
9
+ <%= "- #{proc}" %>
10
+ <% end %>
11
+ - host: cd services/<%= args[0] %> && zsh
12
+
13
+ <% else %>
14
+
15
+ name: neptuno
16
+ root: .
17
+ on_project_exit: tmux kill-session -t neptuno
18
+
19
+ windows:
20
+ - neptuno:
21
+ panes:
22
+ - sleep 2 && vim
23
+ - neptuno ps
24
+ - # host shell
25
+
26
+ <% @args.each do |service| %>
27
+ - <%= service %>:
28
+ root: .
29
+ pre: cd ./services/<%= service %>
30
+
31
+ <% if YAML.load_file('neptuno.yml')["mode"] == "ide" %>
32
+ layout: 3595,323x99,0,0[323x82,0,0,85,323x16,0,83{161x16,0,83,86,161x16,162,83,87}]
33
+ panes:
34
+ - sleep 2 && vim
35
+ - server:
36
+ neptuno c <%= service %>
37
+ <% else %>
38
+ panes:
39
+ - server:
40
+ neptuno c <%= service %>
41
+ <% end %>
42
+ <% end %>
43
+
44
+ <% end %>
@@ -4,6 +4,7 @@ module Neptuno
4
4
  module TTY
5
5
  # Wrapper class for TTY gem
6
6
  module Config
7
+ include TTY::File
7
8
  TTY = ::TTY::Config.new
8
9
  TTY.filename = 'neptuno'
9
10
 
@@ -13,8 +14,23 @@ module Neptuno
13
14
  TTY
14
15
  end
15
16
 
17
+ def docker_compose_services
18
+ source = ::File.read("#{neptuno_path}/docker-compose.yml")
19
+ docker_compose = begin
20
+ YAML.load(source, aliases: true)
21
+ rescue ArgumentError
22
+ YAML.load(source)
23
+ end
24
+ docker_compose.fetch('services').keys
25
+ end
26
+
27
+ def auto_restart_procs
28
+ config.fetch('auto_restart_procs')
29
+ end
30
+
16
31
  def services
17
32
  s = config.fetch('services')
33
+ s = s.to_a.union(docker_compose_services)
18
34
  abort ABORT_MESSAGE if s.count.zero?
19
35
  s.sort
20
36
  end
@@ -35,6 +35,14 @@ module Neptuno
35
35
  pwd = pwd.split('/')[0..-2].join('/')
36
36
  end
37
37
  end
38
+
39
+ def make_service_files(services)
40
+ services.each do |service|
41
+ `cd #{neptuno_path} && mkdir -p environments/#{service} procfiles/#{service} dockerfiles/#{service}`
42
+ `cd #{neptuno_path} && touch environments/#{service}/local_env`
43
+ `cd #{neptuno_path} && touch dockerfiles/#{service}/Dockerfile`
44
+ end
45
+ end
38
46
  end
39
47
  end
40
48
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Neptuno
4
- VERSION = '1.0.5'
4
+ VERSION = '1.0.7'
5
5
  end
data/neptuno.gemspec CHANGED
@@ -12,13 +12,13 @@ Gem::Specification.new do |spec|
12
12
  spec.description = "A CLI for Neptuno distributed architectural style applications"
13
13
  spec.homepage = 'https://github.com/apptegy/neptuno'
14
14
  spec.license = 'Apache-2.0'
15
- spec.required_ruby_version = '>= 2.6.1'
15
+ spec.required_ruby_version = '>= 2.3.0'
16
16
 
17
17
  # spec.metadata['allowed_push_host'] = "TODO: Set to 'https://mygemserver.com'"
18
18
 
19
- spec.metadata['homepage_uri'] = spec.homepage
20
- spec.metadata['source_code_uri'] = spec.homepage
21
- spec.metadata['changelog_uri'] = "#{spec.homepage}/releases"
19
+ spec.metadata['homepage_uri'] = "https://apptegy.github.io/neptuno/"
20
+ spec.metadata['source_code_uri'] = "https://github.com/apptegy/neptuno"
21
+ spec.metadata['changelog_uri'] = "https://github.com/apptegy/releases"
22
22
 
23
23
  # Specify which files should be added to the gem when it is released.
24
24
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -30,6 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.require_paths = ['lib']
31
31
 
32
32
  # Neptuno dependency list
33
+ spec.add_dependency "psych", "< 4"
33
34
  spec.add_dependency 'dotiw'
34
35
  spec.add_dependency 'dry-cli'
35
36
  spec.add_dependency 'hirb'
metadata CHANGED
@@ -1,181 +1,195 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neptuno
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Plancarte
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-22 00:00:00.000000000 Z
11
+ date: 2022-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: psych
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - <
18
+ - !ruby/object:Gem::Version
19
+ version: '4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - <
25
+ - !ruby/object:Gem::Version
26
+ version: '4'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: dotiw
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
- - - ">="
31
+ - - '>='
18
32
  - !ruby/object:Gem::Version
19
33
  version: '0'
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
- - - ">="
38
+ - - '>='
25
39
  - !ruby/object:Gem::Version
26
40
  version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: dry-cli
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - ">="
45
+ - - '>='
32
46
  - !ruby/object:Gem::Version
33
47
  version: '0'
34
48
  type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - ">="
52
+ - - '>='
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: hirb
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - ">="
59
+ - - '>='
46
60
  - !ruby/object:Gem::Version
47
61
  version: '0'
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - ">="
66
+ - - '>='
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: tty-command
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - ">="
73
+ - - '>='
60
74
  - !ruby/object:Gem::Version
61
75
  version: '0'
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - ">="
80
+ - - '>='
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: tty-config
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ">="
87
+ - - '>='
74
88
  - !ruby/object:Gem::Version
75
89
  version: '0'
76
90
  type: :runtime
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ">="
94
+ - - '>='
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: tty-file
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ">="
101
+ - - '>='
88
102
  - !ruby/object:Gem::Version
89
103
  version: '0'
90
104
  type: :runtime
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ">="
108
+ - - '>='
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: tty-prompt
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ">="
115
+ - - '>='
102
116
  - !ruby/object:Gem::Version
103
117
  version: '0'
104
118
  type: :runtime
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - ">="
122
+ - - '>='
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: tty-spinner
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
- - - ">="
129
+ - - '>='
116
130
  - !ruby/object:Gem::Version
117
131
  version: '0'
118
132
  type: :runtime
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - ">="
136
+ - - '>='
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: tty-which
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - ">="
143
+ - - '>='
130
144
  - !ruby/object:Gem::Version
131
145
  version: '0'
132
146
  type: :runtime
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - ">="
150
+ - - '>='
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: zeitwerk
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
- - - ">="
157
+ - - '>='
144
158
  - !ruby/object:Gem::Version
145
159
  version: '0'
146
160
  type: :runtime
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
- - - ">="
164
+ - - '>='
151
165
  - !ruby/object:Gem::Version
152
166
  version: '0'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: minitest-reporters
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
- - - ">="
171
+ - - '>='
158
172
  - !ruby/object:Gem::Version
159
173
  version: '0'
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
- - - ">="
178
+ - - '>='
165
179
  - !ruby/object:Gem::Version
166
180
  version: '0'
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: standard
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
- - - ">="
185
+ - - '>='
172
186
  - !ruby/object:Gem::Version
173
187
  version: '0'
174
188
  type: :development
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
- - - ">="
192
+ - - '>='
179
193
  - !ruby/object:Gem::Version
180
194
  version: '0'
181
195
  description: A CLI for Neptuno distributed architectural style applications
@@ -186,9 +200,9 @@ executables:
186
200
  extensions: []
187
201
  extra_rdoc_files: []
188
202
  files:
189
- - ".github/workflows/gem-push.yml"
190
- - ".github/workflows/main.yml"
191
- - ".gitignore"
203
+ - .github/workflows/gem-push.yml
204
+ - .github/workflows/main.yml
205
+ - .gitignore
192
206
  - AUTHORS
193
207
  - CHANGELOG.md
194
208
  - CODE_OF_CONDUCT.md
@@ -198,6 +212,8 @@ files:
198
212
  - README.md
199
213
  - Rakefile
200
214
  - bin/console
215
+ - bin/docker-compose.yml
216
+ - bin/neptuno.yml
201
217
  - bin/setup
202
218
  - docs/bg.png
203
219
  - docs/docs.css
@@ -212,6 +228,7 @@ files:
212
228
  - lib/neptuno/cli.rb
213
229
  - lib/neptuno/cli/activate.rb
214
230
  - lib/neptuno/cli/base.rb
231
+ - lib/neptuno/cli/clone.rb
215
232
  - lib/neptuno/cli/configure.rb
216
233
  - lib/neptuno/cli/execute.rb
217
234
  - lib/neptuno/cli/init.rb
@@ -237,11 +254,8 @@ files:
237
254
  - lib/neptuno/services/destroy.rb
238
255
  - lib/neptuno/services/list.rb
239
256
  - lib/neptuno/services/update.rb
240
- - lib/neptuno/templates/Dockerfile
241
- - lib/neptuno/templates/Procfile
242
257
  - lib/neptuno/templates/docker-compose.yml
243
258
  - lib/neptuno/templates/tmuxinator.yml
244
- - lib/neptuno/templates/ude.yml
245
259
  - lib/neptuno/tty/command.rb
246
260
  - lib/neptuno/tty/config.rb
247
261
  - lib/neptuno/tty/file.rb
@@ -253,25 +267,26 @@ homepage: https://github.com/apptegy/neptuno
253
267
  licenses:
254
268
  - Apache-2.0
255
269
  metadata:
256
- homepage_uri: https://github.com/apptegy/neptuno
270
+ homepage_uri: https://apptegy.github.io/neptuno/
257
271
  source_code_uri: https://github.com/apptegy/neptuno
258
- changelog_uri: https://github.com/apptegy/neptuno/releases
272
+ changelog_uri: https://github.com/apptegy/releases
259
273
  post_install_message:
260
274
  rdoc_options: []
261
275
  require_paths:
262
276
  - lib
263
277
  required_ruby_version: !ruby/object:Gem::Requirement
264
278
  requirements:
265
- - - ">="
279
+ - - '>='
266
280
  - !ruby/object:Gem::Version
267
- version: 2.6.1
281
+ version: 2.3.0
268
282
  required_rubygems_version: !ruby/object:Gem::Requirement
269
283
  requirements:
270
- - - ">="
284
+ - - '>='
271
285
  - !ruby/object:Gem::Version
272
286
  version: '0'
273
287
  requirements: []
274
- rubygems_version: 3.0.3.1
288
+ rubyforge_project:
289
+ rubygems_version: 2.0.14.1
275
290
  signing_key:
276
291
  specification_version: 4
277
292
  summary: Unified Development Environment CLI
File without changes
File without changes
File without changes