[buildout]
extends =
  ../../component/apache/buildout.cfg
  ../../component/bash/buildout.cfg
  ../../component/dcron/buildout.cfg
  ../../component/dropbear/buildout.cfg
  ../../component/gzip/buildout.cfg
  ../../component/logrotate/buildout.cfg
  ../../stack/slapos.cfg

parts =
  instance-profile
  slapos-cookbook
  eggs

# Add hosting location of testing version of slapos.core
find-links +=
  http://www.nexedi.org/static/packages/source/slapos.core-testing/

[environment]
recipe = collective.recipe.environment


[instance-profile]
# 3 advantages of using jinja2 for ALL templates:
# 1/ Explicit scope (pythonic style, we explicitely list what we want to be in the scope)
# 2/ No troubles between $ and $$ (more simple)
# 3/ We can explicitely define the path of executables (i.e
#    in software, define httpd-executable = ${apache:location}/bin/httpd
#    and in instance, just use httpd-executable without bother where it is actually
#    (location can change inside of the component, from bin to sbin for example).
recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/instance.cfg.jinja2
rendered = ${buildout:directory}/instance.cfg
#md5sum = 4861be4a581686feef9f9edea865d7ee
mode = 0644
context =
    key bin_directory buildout:bin-directory
    key develop_eggs_directory buildout:develop-eggs-directory
    key eggs_directory buildout:eggs-directory
    key path environment:PATH
    raw httpd_executable ${apache:location}/bin/httpd
    raw bash_executable ${bash:location}/bin/bash
    raw dcron_executable ${dcron:location}/sbin/crond
    raw dropbear_executable ${dropbear:location}/sbin/dropbear
    raw dropbearkey_executable ${dropbear:location}/bin/dropbearkey
    raw gzip_executable ${gzip:location}/bin/gzip
    raw gunzip_executable ${gzip:location}/bin/gunzip
    raw logrotate_executable ${logrotate:location}/usr/sbin/logrotate
    raw slapos_configuration_file_template_path ${slapos-configuration-file-template:target}
    raw httpd_configuration_file_template_path ${httpd-configuration-file-template:target}

[slapos-configuration-file-template]
# Download the template of slapos.cfg
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/template/slapos.cfg.in
#md5sum = 
target = ${buildout:directory}/slapos.cfg.in
mode = 0644


[httpd-configuration-file-template]
# Download the template of httpd.conf
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/template/httpd.conf.in
mode = 0644
#md5sum = 
#target = ${

[eggs]
recipe = zc.recipe.egg
eggs =
  collective.recipe.template

# Add slapos.libnetworkcache to path of slapos.core.
[slapos-cookbook]
eggs =
  ${lxml-python:egg}
  slapos.cookbook
  cliff
  hexagonit.recipe.download
  inotifyx
  netaddr
  netifaces
  requests
  slapos.core
  supervisor
  xml_marshaller
  pytz
  slapos.libnetworkcache

