Sha256: 29dd565ed4c8d142f86f6d5eef2eee52043481338c98e22126f7780004a048e6

Contents?: true

Size: 1.3 KB

Versions: 2

Compression:

Stored size: 1.3 KB

Contents

# frozen_string_literal: true

# tau ship project start
module ShipProjectStart
  # Start a takelship
  def ship_project_start(project)
    return false unless docker_check_daemon

    return false if _docker_container_lib_check_matrjoschka

    return false if ship_container_check_existing

    takelship = _ship_info_lib_get_takelshipinfo
    project = config.active['ship_default_project'] if project == 'default'
    project = takelship['default_project'] if project == 'default'

    return false unless _ship_info_lib_valid_project? takelship, project

    log.debug "Starting takelship project \"#{project}\""
    ports = _ship_project_start_ports takelship, project
    say _ship_container_lib_docker_privileged ports, project
  end

  private

  # Get takelship ports
  # rubocop:disable Metrics/MethodLength
  def _ship_project_start_ports(takelship, project)
    ports = []
    takelship['projects'].each do |takelship_project|
      next unless project == takelship_project['name']

      takelship_project['services'].each do |service|
        next unless service.key?('ports')

        service['ports'].each do |port|
          ports << port['port']
        end
      end
    end
    # add DOCKER_HOST port
    ports << config.active['ship_docker_host']
    ports
  end
end
# rubocop:enable Metrics/MethodLength

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
takeltau-0.43.10 lib/takeltau/ship/project/start.rb
takeltau-0.43.6 lib/takeltau/ship/project/start.rb