[buildout]
parts =
  apacheperl-promise
  publish-connection-information

eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true

[rootdirectory]
recipe = slapos.cookbook:mkdirectory
etc = $${buildout:directory}/etc
srv = $${buildout:directory}/srv
log = $${buildout:directory}/log

[basedirectory]
recipe = slapos.cookbook:mkdirectory
services = $${rootdirectory:etc}/run
promises = $${rootdirectory:etc}/promise
htdocs = $${rootdirectory:srv}/htdocs

[apacheperl-instance]
recipe = slapos.cookbook:apacheperl
ip = $${slap-network-information:global-ipv6}
port = 8080
httpd-binary = ${apache-2.2:location}/bin/httpd
# XXX TODO: Wait for the iso to be uploaded (execute_wait)
path = $${basedirectory:services}/apacheperl
htdocs = $${basedirectory:htdocs}
httpd-conf = $${rootdirectory:etc}/httpd.conf
pid-file = $${basedirectory:services}/apache.pid
lock-file = $${basedirectory:services}/apache.lock
wrapper = $${basedirectory:services}/httpd_wrapper
# source = ${buildout:parts-directory}/${:_buildout_section_name_}
error-log = $${rootdirectory:log}/error.log
access-log = $${rootdirectory:log}/access.log

[apacheperl-promise]
recipe = slapos.cookbook:check_port_listening
path = $${basedirectory:promises}/httpd_promise
hostname = $${apacheperl-instance:ip}
port = $${apacheperl-instance:port}

[publish-connection-information]
recipe = slapos.cookbook:publish
apacheperl_url = http://[$${apacheperl-instance:ip}]:$${apacheperl-instance:port}