class Devup::Environment
Attributes
logger[R]
pwd[R]
shell[R]
Public Class Methods
new(pwd:, compose: nil, logger: Logger.build, shell: Shell.new(pwd: pwd, logger: logger))
click to toggle source
# File lib/devup/environment.rb, line 13 def initialize(pwd:, compose: nil, logger: Logger.build, shell: Shell.new(pwd: pwd, logger: logger)) @pwd = pwd.to_s.strip @compose = compose @logger = logger @shell = shell end
Public Instance Methods
down()
click to toggle source
# File lib/devup/environment.rb, line 41 def down logger.info "shutting down..." compose.stop compose.rm clear_dotenv logger.info "down" rescue => ex logger.debug ex logger.info "halted" end
env()
click to toggle source
# File lib/devup/environment.rb, line 24 def env services.map { |s| service_env(s) }.join("\n\n") end
project()
click to toggle source
# File lib/devup/environment.rb, line 20 def project pwd.split("/")[-1].strip end
root()
click to toggle source
# File lib/devup/environment.rb, line 52 def root Pathname.new pwd end
up()
click to toggle source
# File lib/devup/environment.rb, line 28 def up logger.info "starting up..." check compose.up write_dotenv logger.info "up" rescue => ex clear_dotenv logger.debug ex logger.error "halted" raise ex end
Private Instance Methods
check()
click to toggle source
# File lib/devup/environment.rb, line 58 def check raise if missing_config compose.check end
clear_dotenv()
click to toggle source
# File lib/devup/environment.rb, line 85 def clear_dotenv File.open(root.join(".env.services"), "w") { |f| f.write "" } end
compose()
click to toggle source
# File lib/devup/environment.rb, line 104 def compose @compose ||= begin Compose.new( root.join("docker-compose.devup.yml"), project: project, logger: logger, shell: shell ) end end
dotenv()
click to toggle source
# File lib/devup/environment.rb, line 89 def dotenv <<~DOTENV #################################################### # This file is generated by devup command. # # Home: https://github.com/sergio-fry/devup # #################################################### # START #{env} # END DOTENV end
missing_config()
click to toggle source
# File lib/devup/environment.rb, line 63 def missing_config if File.exist?(compose.path) false else logger.error "missing #{compose.path}" true end end
service_env(service)
click to toggle source
# File lib/devup/environment.rb, line 77 def service_env(service) ServicePresenter.new(service, project: project).call end
services()
click to toggle source
# File lib/devup/environment.rb, line 73 def services @services ||= compose.services.map { |name| Service.new(compose, name) } end
write_dotenv()
click to toggle source
# File lib/devup/environment.rb, line 81 def write_dotenv File.open(root.join(".env.services"), "w") { |f| f.write dotenv } end