[buildout]
extends =
  buildout.hash.cfg
  ../../component/bash/buildout.cfg
  ../../component/fish-shell/buildout.cfg
  ../../component/tmux/buildout.cfg
  ../../component/busybox/buildout.cfg
  ../../component/curl/buildout.cfg
  ../../component/dash/buildout.cfg
  ../../component/dcron/buildout.cfg
  ../../component/git/buildout.cfg
  ../../component/tig/buildout.cfg
  ../../component/logrotate/buildout.cfg
  ../../component/lxml-python/buildout.cfg
  ../../component/nano/buildout.cfg
  ../../component/nginx/buildout.cfg
  ../../component/openssh/buildout.cfg
  ../../component/mosh/buildout.cfg
  ../../component/rsync/buildout.cfg
  ../../component/pycurl/buildout.cfg
  ../../component/screen/buildout.cfg
  ../../component/shellinabox/buildout.cfg
  ../../component/vim/buildout.cfg
  ../../component/zip/buildout.cfg
  ../../stack/slapos.cfg
  ../../stack/flask.cfg
  ../../stack/resilient/buildout.cfg
  ../../stack/logrotate/buildout.cfg
  ../../stack/monitor/buildout.cfg

# make sure shared-part-list is available, even for old versions
# of slapos who do not set that.
shared-part-list =

# stacks are listed from most generic to most specific,
# to avoid versioning issues

common-parts =
  slapos-command
  slapos-cookbook
  template
  instance-runner-import
  instance-runner-export
  template-slapos-cfg
  template-slapformat-definition.cfg
  template-slapuser-script
# XXX: we have to manually add this for resilience
  rdiff-backup
  pbs-recipe-egg

parts =
  ${:common-parts}


[template-base]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename}
mode = 0644

[download-base]
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/${:filename}
mode = 0644

[download-only-base]
< = download-base
ignore-existing = true
download-only = true

[template-download-base]
# Downloads from template directory into current directory
< = download-only-base
url = ${:_profile_base_location_}/template/${:filename}
location = ${buildout:parts-directory}/${:_buildout_section_name_}

[template]
< = template-base
output = ${buildout:directory}/template.cfg

[template-runner]
< = template-base
output = ${buildout:directory}/template-runner.cfg.in

[template-runner-import-script]
< = template-download-base
filename = runner-import.sh.jinja2

[instance-runner-import]
< = download-base
recipe = slapos.recipe.build:download

[instance-runner-export]
< = download-base
recipe = slapos.recipe.build:download

[template-resilient]
< = download-base
recipe = slapos.recipe.build:download

[template_nginx_conf]
< = download-only-base

[template_httpd_conf]
< = download-only-base

[template_launcher]
< = download-base
recipe = slapos.recipe.build:download

[template-slapos-cfg]
< = template-download-base
filename = slapos.cfg.in

[template-slapformat-definition.cfg]
< = template-download-base
filename = slapformat-definition.cfg.in

[template-parameters]
< = download-only-base

[template-bash-profile]
< = template-download-base
filename = bash_profile.in

[template-supervisord]
< = template-download-base
filename = supervisord.conf.in

[template-listener-slapgrid]
< = template-download-base
filename = listener_slapgrid.py.in

[monitor-check-webrunner-internal-instance]
< = template-download-base
destination = ${:location}/${:filename}
filename = monitor-check-webrunner-internal-instances.py

[template-resilient-software-release-information]
< = template-download-base
filename = resilient_software_release_information.py.in

[template-slapuser-script]
< = template-download-base
filename = slapos-slapuser-script.in

[template-buildout-shared-part-list]
< = template-base
output = ${buildout:directory}/buildout-shared-part-list

[python-with-eggs]
recipe = zc.recipe.egg
interpreter = ${:_buildout_section_name_}
eggs =
  ${slapos-toolbox:eggs}
  erp5.util
  lock-file
  slapos.recipe.build
  slapos.toolbox[flask_auth]
  gunicorn
# for gunicorn[gthread]
  futures
  supervisor
# BBB: eggs used as recipe should be kept otherwise sections depending
# on it can't be uninstalled
  collective.recipe.shelloutput
scripts =
  gunicorn
  supervisord
  supervisorctl


[versions]
Flask-Auth = 0.85
futures = 3.0.5
gitdb = 0.6.4
gunicorn = 19.10.0
prettytable = 0.7.2
pycurl = 7.43.0
slapos.recipe.template = 4.4
collective.recipe.environment = 0.2.0
smmap = 0.9.0
lockfile = 0.12.2
