Module: PortMap::Utilities

Defined in:
lib/port_map/utilities.rb

Constant Summary collapse

BASH_SHELL =
'/bin/bash'.freeze
ZSH_SHELL =
'/bin/zsh'.freeze
BASH_CMD_STRING =
"bash -c 'source ~/.bashrc > /dev/null; PATH=%{path}; shopt -s expand_aliases; %{cmd}"
ZSH_CMD_STRING =
"zsh -c 'source ~/.zshrc > /dev/null; PATH=%{path}; setopt aliases; eval %{cmd}'"
STARTING_PORT_NUMBER =
20000
PORT_NUMBER_INCREMENT =
100

Class Method Summary collapse

Class Method Details

.apply_open_port_option(port, cmd) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/port_map/utilities.rb', line 23

def self.apply_open_port_option(port, cmd)
  port_option_flag = '--port'

  if cmd.sub!(/-p\s+(\d+)/, '')
    port_option_flag = '-p'
  elsif cmd.sub!(/--port\s+(\d+)/, '')
    port_option_flag = '--port'
  end

  [cmd.strip, port_option_flag, port].join(' ')
end

.next_empty_portObject



35
36
37
38
39
40
41
# File 'lib/port_map/utilities.rb', line 35

def self.next_empty_port
  highest_port = PortMap::Mappings.all.map do |port_map|
    port_map[:locations].detect { |location| location[:name] == '/' }[:proxy_pass].split(':').last.to_i
  end.sort.reverse.first

  highest_port.nil? ? STARTING_PORT_NUMBER : highest_port + PORT_NUMBER_INCREMENT
end

.shell_cmd_wrapper(cmd) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/port_map/utilities.rb', line 12

def self.shell_cmd_wrapper(cmd)
  case ENV.fetch('SHELL')
  when ZSH_SHELL
    ZSH_CMD_STRING % { path: ENV.fetch('PATH'), cmd: cmd }
  when BASH_SHELL
    BASH_CMD_STRING % { path: ENV.fetch('PATH'), cmd: cmd }
  else
    cmd
  end
end