1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- # Copyright (C) 2010 Internet Systems Consortium.
- #
- # Permission to use, copy, modify, and distribute this software for any
- # purpose with or without fee is hereby granted, provided that the above
- # copyright notice and this permission notice appear in all copies.
- #
- # THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SYSTEMS CONSORTIUM
- # DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
- # INTERNET SYSTEMS CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
- # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
- # FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- # This is a base-level module intended to provide configure-time
- # variables to python scripts and libraries.
- import os
- def reload():
- # In a function, for testing purposes
- global BIND10_MSGQ_SOCKET_FILE
- global DATA_PATH
- global PLUGIN_PATHS
- global PREFIX
- global LIBEXECPATH
- global SYSCONFPATH
- BIND10_MSGQ_SOCKET_FILE = os.path.join("@localstatedir@",
- "@PACKAGE_NAME@",
- "msgq_socket").replace("${prefix}",
- "@prefix@")
- PREFIX = "@prefix@"
- SYSCONFPATH="@sysconfdir@/@PACKAGE@".replace('${prefix}', PREFIX)
- # B10_FROM_SOURCE is set in the environment for internal tests and
- # an experimental run without installation. In that case we need to
- # specialize some configuration variables, generally so that they refer
- # to somewhere in the source tree instead of the appropriate places
- # after installation.
- #
- # DATA_PATH: used by the config manager to find configuration files.
- # When "FROM_SOURCE", we use data files from a directory relative to the
- # value of that variable, or, if defined, relative to the value of
- # B10_FROM_SOURCE_LOCALSTATEDIR. Otherwise we use the ones installed on
- # the system.
- # PLUGIN_PATHS: configuration modules that are not associated to specific
- # process
- # LIBEXECPATH: Paths to programs invoked by the b10-init process
- # The b10-init process (directly or via a helper module) uses this as
- # the prefererred PATH before starting a child process.
- # When "FROM_SOURCE", it lists the directories where the programs are
- # built so that when BIND 10 is experimentally started on the source
- # tree the programs in the tree (not installed ones) will be used.
- # SYSCONFPATH: Path where the system-wide configuration files are
- # stored (e.g. <prefix>/var/<package name>). This value is *not*
- # overwritten if B10_FROM_SOURCE is specified.
- #
- # B10_FROM_SOURCE_LOCALSTATEDIR is specifically intended to be used for
- # tests where we want to use various types of configuration within the test
- # environment. (We may want to make it even more generic so that the path
- # is passed from the b10-init process)
- if "B10_FROM_SOURCE" in os.environ:
- if "B10_FROM_SOURCE_LOCALSTATEDIR" in os.environ:
- DATA_PATH = os.environ["B10_FROM_SOURCE_LOCALSTATEDIR"]
- else:
- DATA_PATH = os.environ["B10_FROM_SOURCE"]
- PLUGIN_PATHS = [os.environ["B10_FROM_SOURCE"] +
- '/src/bin/cfgmgr/local_plugins',
- os.environ["B10_FROM_SOURCE"] +
- '/src/bin/cfgmgr/plugins']
- programdirs = ['auth', 'cfgmgr', 'cmdctl', 'ddns', 'dhcp6', 'msgq',
- 'resolver', 'sockcreator', 'stats', 'xfrin', 'xfrout',
- 'zonemgr']
- LIBEXECPATH = ':'.join(['@abs_top_builddir@/src/bin/' + p for p in
- programdirs])
- else:
- DATA_PATH = "@localstatedir@/@PACKAGE@".replace("${prefix}", PREFIX)
- PLUGIN_PATHS = ["@prefix@/share/@PACKAGE@/config_plugins"]
- LIBEXECPATH = ("@libexecdir@/@PACKAGE@"). \
- replace("${exec_prefix}", "@exec_prefix@"). \
- replace("${prefix}", "@prefix@")
- # For testing the plugins so they can find their own spec files
- if "B10_TEST_PLUGIN_DIR" in os.environ:
- PLUGIN_PATHS = os.environ["B10_TEST_PLUGIN_DIR"].split(':')
- reload()
|