lib/takeltau/ship/project/start.rb in takeltau-0.44.19 vs lib/takeltau/ship/project/start.rb in takeltau-0.44.23
- old
+ new
@@ -9,19 +9,20 @@
takelship = _ship_info_lib_get_takelshipinfo
project = _ship_info_lib_get_project project, takelship
return false unless _ship_project_start_valid_project? takelship, project
ports = _ship_ports_lib_get_ports(takelship, project)
- return false unless _ship_project_start_sailing? project, ports
+ return false if _ship_project_start_already_sailing? project, ports
log.debug 'Writing port configuration to takelage.yml'
_ship_ports_lib_write_ports(ports, project)
log.debug "Starting takelship project \"#{project}\""
_ship_container_lib_docker_privileged ports, project
- say "Started project \"#{project}\" on takelship \"#{_ship_container_lib_ship_hostname}\".\n\n"
+ _ship_project_start_print_banner project
_ship_project_start_print_ports ports
+ true
end
private
# check if we are inside a takelage container
@@ -31,27 +32,37 @@
say 'Cannot start a takelship from within a takelage container!'
false
end
# check if the takelship is already existng
- def _ship_project_start_sailing?(project, ports)
- return true unless ship_container_check_existing
+ def _ship_project_start_already_sailing?(project, ports)
+ return false unless ship_container_check_existing
- say "The takelship \"#{_ship_container_lib_ship_hostname}\" is sailing with project \"#{project}\".\n\n"
- say _ship_project_start_print_ports ports
- false
+ _ship_project_start_print_banner project
+ _ship_project_start_print_ports ports
+ true
end
# check if the project is a valid takelship project
def _ship_project_start_valid_project?(takelship, project)
return true if _ship_info_lib_valid_project? takelship, project
say 'No valid project found!'
- say 'Hint: ship project list'
+ say 'Try: ship project list'
false
end
+ # print banner with status information
+ def _ship_project_start_print_banner(project)
+ ship_hostname = _ship_container_lib_ship_hostname
+ ship_dir = _docker_container_lib_homify_dir config.active['project_root_dir']
+ say "The takelship #{ship_hostname}"
+ say "departed from #{ship_dir}"
+ say "ships project #{project}"
+ say
+ end
+
# print ports after starting a takelship
def _ship_project_start_print_ports(ports)
output = []
max_length = _ship_project_start_get_maxlength ports
ports.each_value do |port|
@@ -61,10 +72,10 @@
service = "[#{port['service']} #{port['protocol']}]"
description = port['description']
description = " (#{description})" if port.key? 'description'
output << "#{url.ljust(max_length['url'])} #{service.ljust(max_length['service'])}#{description}"
end
- output.join("\n")
+ say output.join("\n")
end
# get max length of left column
def _ship_project_start_get_maxlength(ports)
max_length = {}