anchor.diff:          default =
             ''
             <zodb_db main>
  -          mount-point /
  -          cache-size 30000
  -          <blobstorage>
  -              blob-dir /var/lib/zope2/${name}/blobstorage
  -              <filestorage>
  -              path /var/lib/zope2/${name}/filestorage/Data.fs
  -              </filestorage>
  -          </blobstorage>
  +            mount-point /
  +            cache-size 30000
  +            <blobstorage>
  +                blob-dir /var/lib/zope2/${name}/blobstorage
  +                <filestorage>
  +                path /var/lib/zope2/${name}/filestorage/Data.fs
  +                </filestorage>
  +            </blobstorage>
             </zodb_db>
             '';
           type = types.string;
  
positive.code:           extra =
              ''
              <zodb_db main>
              mount-point /
              cache-size 30000
              <blobstorage>
                  blob-dir /var/lib/zope2/plone01/blobstorage
                  <filestorage>
                  path /var/lib/zope2/plone01/filestorage/Data.fs
                  </filestorage>
              </blobstorage>
              </zodb_db>
              '';
  
  
negative.code:                 '';
              };
              conf = pkgs.writeText "zope2-${name}-conf"
                ''
                %define INSTANCEHOME ${env}
                instancehome $INSTANCEHOME
                %define CLIENTHOME /var/lib/zope2/${name}
                clienthome $CLIENTHOME
  
                debug-mode off
                security-policy-implementation C
                verbose-security off
                default-zpublisher-encoding utf-8
                zserver-threads ${toString opts.threads}
                effective-user ${opts.user}
  
                pid-filename /var/lib/zope2/${name}/pid
                lock-filename /var/lib/zope2/${name}/lock
                python-check-interval 1000
                enable-product-installation off
  
                <environment>
                  zope_i18n_compile_mo_files false
                </environment>
  
                <eventlog>
                level INFO
                <logfile>
                    path /var/log/zope2/${name}.log
                    level INFO
                </logfile>
                </eventlog>
  
                <logger access>
                level WARN
                <logfile>
                    path /var/log/zope2/${name}-Z2.log
                    format %(message)s
                </logfile>
                </logger>
  
                <http-server>
                address ${opts.http_address}
                </http-server>
  
                <zodb_db temporary>
                <temporarystorage>
                    name temporary storage for sessioning
                </temporarystorage>
                mount-point /temp_folder
                container-class Products.TemporaryFolder.TemporaryContainer
                </zodb_db>
  
                ${opts.extra}
                '';
              ctlScript = pkgs.writeScript "zope2-${name}-ctl-script"
                ''
                #!${env}/bin/python
  
                import sys
                import plone.recipe.zope2instance.ctl
  
                if __name__ == '__main__':
                    sys.exit(plone.recipe.zope2instance.ctl.main(
                        ["-C", "${conf}"]
                        + sys.argv[1:]))
                '';
  
              ctl = pkgs.writeScript "zope2-${name}-ctl"
                ''
                #!${pkgs.bash}/bin/bash -e
                export PYTHONHOME=${env}
                exec ${ctlScript} "$@"
                '';
            in {
              description = "zope2 ${name} instance";
  