######################################################
# Base Configuration; this provides sane defaults
# for commonly used parts.
# ---------------------------------------------------
#
# Buildout instructions in this file are
# usually only changed by experienced developers.
#
# Beyond here there be dragons!

[buildout]
# eggs-directory=../buildout-cache/eggs
# download-cache=../buildout-cache/downloads

# Don't download new things unless needed to satisfy dependencies.
# Override this on the command line with the "-n" flag.
newest = false

# pick final releases over newer development releases
prefer-final = true

# show picked versions wherever we do an automatic choice
show-picked-versions = true

versions = versions

# Add additional egg download sources here. dist.plone.org contains archives
# of Plone packages.
find-links =
    http://dist.plone.org

############################################
# Environment Variables
# ---------------------
# Some of the behavior of your Zope/Plone instances are controlled with OS
# environment variables. You may set those here in a key / value format.
# Some common settings:
#    * TZ allows you to set a time zone for systems where it's not
#      automatically available.
#    * zope_i18n_compile_mo_files allows for automatic compilation of
#      missing translation files (may slow startup).
#    * zope_i18n_allowed_languages allows you to limit the available
#      translations.
#    * PYTHON_EGG_CACHE determines where zipped python packages are unpacked
#      for use.
#    * PYTHONHASHSEED determines initial seed for hashes. "random" causes a
#      pseudo-random value is used to seed the hashes of str, bytes and datetime
#      objects.
environment-vars =
    zope_i18n_compile_mo_files true
    PYTHON_EGG_CACHE ${buildout:directory}/var/.python-eggs
#    PYTHONHASHSEED random
#    TZ US/Eastern
#    zope_i18n_allowed_languages en es de fr

[instance_base]
# Use this section to install and configure a Zope operating
# instance.
# For options see http://pypi.python.org/pypi/plone.recipe.zope2instance

# The line below sets only the initial password. It will not change an
# existing password.
user = ${buildout:user}
# change debug-mode to "on" to run in development mode.
# starting in foreground (fg) mode is a better way to do this.
debug-mode = off
# change verbose-security to "on" for detailed security
# errors while developing
verbose-security = ${buildout:verbose-security}
# change deprecation-warnings to "on" to get log warnings
# for deprecated usages.
# deprecation-warnings = ${buildout:deprecation-warnings}

# With Plone 5.2+, we default to wsgi
wsgi = {{{ plone.wsgi }}}

# storage locations
var = ${buildout:var-dir}
blob-storage = ${:var}/blobstorage

# Comment the next four lines out if you don't need
# automatic log rotation for event and access logs.
event-log-max-size = 5 MB
event-log-old-files = 5
access-log-max-size = 20 MB
access-log-old-files = 5

# If you want Zope to know about any additional eggs, list them here.
# e.g. eggs = ${buildout:eggs} my.package
eggs =
    ${buildout:eggs}

# If you want to register ZCML slugs for any packages, list them here.
# e.g. zcml = my.package my.other.package
zcml = ${buildout:zcml}

# You may also control the environment variables for the instance.
environment-vars = ${buildout:environment-vars}

[zeoserver_base]
# Use this section to install and configure a Zope
# Enterprise Objects server.
# For options see http://pypi.python.org/pypi/plone.recipe.zeoserver
#
# Set storage
var = ${buildout:var-dir}
blob-storage = ${buildout:var-dir}/blobstorage
# Put the log, pid and socket files in var/zeoserver
zeo-log     = ${buildout:var-dir}/zeoserver/zeoserver.log
pid-file    = ${buildout:var-dir}/zeoserver/zeoserver.pid
socket-name = ${buildout:var-dir}/zeoserver/zeo.zdsock

[client_base]
# Use this section to install and configure a ZEO client
# instance.
# For options see http://pypi.python.org/pypi/plone.recipe.zope2instance

# The line below sets only the initial password. It will not change an
# existing password.
user = ${buildout:user}
# change debug-mode to "on" to run in development mode.
# starting in foreground (fg) mode is a better way to do this.
debug-mode = off
# change verbose-security to "on" for detailed security
# errors while developing
verbose-security = ${buildout:verbose-security}
# change deprecation-warnings to "on" to get log warnings
# for deprecated usages.
deprecation-warnings = ${buildout:deprecation-warnings}

# With Plone 5.2+, we default to wsgi
wsgi = {{{ plone.wsgi }}}

# base locations
var = ${buildout:var-dir}
blob-storage = ${:var}/blobstorage

# Comment the next four lines out if you don't need
# automatic log rotation for event and access logs.
event-log-max-size = 5 MB
event-log-old-files = 5
access-log-max-size = 20 MB
access-log-old-files = 5

# If you want Zope to know about any additional eggs, list them here.
# e.g. eggs = ${buildout:eggs} my.package
eggs =
    ${buildout:eggs}

# If you want to register ZCML slugs for any packages, list them here.
# e.g. zcml = my.package my.other.package
zcml = ${buildout:zcml}

# You may also control the environment variables for the instance.
environment-vars = ${buildout:environment-vars}

zeo-client = true
# shared blobs are much faster if we're on the same server.
# if not, turn it off.
shared-blob = on

# defer early binding to port; may improve load balancer behavior on restarts
http-fast-listen = off

# Put the log, pid, lock files in var/client1
event-log = ${buildout:var-dir}/${:_buildout_section_name_}/event.log
z2-log    = ${buildout:var-dir}/${:_buildout_section_name_}/Z2.log
pid-file  = ${buildout:var-dir}/${:_buildout_section_name_}/${:_buildout_section_name_}.pid
lock-file = ${buildout:var-dir}/${:_buildout_section_name_}/${:_buildout_section_name_}.lock

[repozo]
# This recipe builds the repozo script for non-zeo installations.
recipe = zc.recipe.egg
eggs = ZODB
scripts = repozo

[backup]
# This recipe builds the backup, restore and snapshotbackup commands.
# For options see http://pypi.python.org/pypi/collective.recipe.backup
recipe = collective.recipe.backup
location = ${buildout:backups-dir}/backups
blobbackuplocation = ${buildout:backups-dir}/blobstoragebackups
snapshotlocation = ${buildout:backups-dir}/snapshotbackups
blobsnapshotlocation = ${buildout:backups-dir}/blobstoragesnapshots
datafs = ${buildout:var-dir}/filestorage/Data.fs
blob-storage = ${buildout:var-dir}/blobstorage

[setpermissions]
# This recipe is used to set permissions for root mode installs
# For options see http://pypi.python.org/pypi/plone.recipe.command
recipe = plone.recipe.command
command =
    # Dummy references to force this to execute after referenced parts
    echo ${backup:location} ${unifiedinstaller:need-sudo} > /dev/null
    chmod 600 .installed.cfg
    # Make sure anything we've created in var is r/w by our group
    find ${buildout:var-dir} -type d -exec chmod 770 {} \; 2> /dev/null
    find ${buildout:var-dir} -type f -exec chmod 660 {} \; 2> /dev/null
    find ${buildout:backups-dir} -type d -exec chmod 770 {} \; 2> /dev/null
    find ${buildout:backups-dir} -type f -exec chmod 660 {} \; 2> /dev/null
    chmod 754 ${buildout:directory}/bin/*
update-command = ${:command}

[zopepy]
# installs a zopepy python interpreter that runs with your
# full Zope environment
recipe = zc.recipe.egg
eggs = ${buildout:eggs}
interpreter = zopepy
scripts = zopepy

[unifiedinstaller]
# This recipe installs the plonectl script and a few other convenience
# items.
# For options see http://pypi.python.org/pypi/plone.recipe.unifiedinstaller
recipe = plone.recipe.unifiedinstaller
user = ${buildout:user}
buildout-user = ${buildout:buildout-user}
need-sudo = ${buildout:need-sudo}

[precompiler]
# This recipe is used in production installs to compile
# .py and .po files so that the daemon doesn't try to do it.
# For options see http://pypi.python.org/pypi/plone.recipe.precompiler
recipe = plone.recipe.precompiler
eggs = ${buildout:eggs}
compile-mo-files = true

[vscode]
recipe = collective.recipe.vscode
eggs = ${instance:eggs}
autocomplete-use-omelette = True
