Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
bee/src/beelib.config.sh.in
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
216 lines (185 sloc)
6.07 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
function config_init_colors() { | |
if [ -t 1 ] ; then | |
COLOR_NORMAL="\\033[0;39m\\033[0;22m" | |
COLOR_GREEN="\\033[0;32m" | |
COLOR_YELLOW="\\033[0;33m" | |
COLOR_RED="\\033[0;31m" | |
COLOR_CYAN="\\033[0;36m" | |
COLOR_BLUE="\\033[0;34m" | |
COLOR_PURPLE="\\033[0;35m" | |
COLOR_BRACKET=${COLOR_PURPLE} | |
COLOR_BRCONTENT=${COLOR_YELLOW} | |
COLOR_INFO=${COLOR_GREEN} | |
COLOR_ERROR=${COLOR_RED} | |
else | |
COLOR_NORMAL="" | |
COLOR_GREEN="" | |
COLOR_YELLOW="" | |
COLOR_RED="" | |
COLOR_CYAN="" | |
COLOR_BLUE="" | |
COLOR_PURPLE="" | |
COLOR_BRACKET="" | |
COLOR_BRCONTENT="" | |
COLOR_INFO="**INFO** " | |
COLOR_ERROR="**ERROR** " | |
fi | |
} | |
function config_init_base_config() { | |
: ${BEE_ROOT_REPOSITORY_PREFIX:=/usr/src/bee} | |
: ${BEE_XDG_DATADIR:=${BEE_DATADIR}} | |
# XDG defaults defined in xdg base spec | |
: ${XDG_CONFIG_HOME:=${HOME}/.config} | |
: ${XDG_CONFIG_DIRS:=/etc/xdg} | |
: ${XDG_DATA_HOME:=${HOME}/.local/share} | |
: ${XDG_DATA_DIRS:=/usr/local/share:/usr/share} | |
# always append bee special dirs to XDG search path | |
XDG_CONFIG_DIRS=${XDG_CONFIG_DIRS}:${BEE_SYSCONFDIR}/xdg:${BEE_SYSCONFDIR} | |
XDG_DATA_DIRS=${XDG_DATA_DIRS}:${BEE_XDG_DATADIR} | |
# append bee installed defaults to config search path | |
: ${BEE_CONFIG_DIR:=${BEE_DEFCONFDIR}} | |
XDG_CONFIG_DIRS=${XDG_CONFIG_DIRS}:${BEE_CONFIG_DIR} | |
# remove dupes from pathes | |
XDG_CONFIG_DIRS=$(beeuniq -d : ${XDG_CONFIG_DIRS//:/ }) | |
XDG_DATA_DIRS=$(beeuniq -d : ${XDG_DATA_DIRS//:/ }) | |
} | |
function config_handle_deprecated_config() { | |
: ${DOTBEERC:=${HOME}/.beerc} | |
if [ -r ${DOTBEERC} ] ; then | |
print_error \ | |
"ERROR: support for ~/.beerc is" \ | |
" deprecated please move it to" \ | |
" ${XDG_CONFIG_HOME}/bee/beerc" | |
exit 1 | |
fi | |
} | |
# load config: (bee/beerc) | |
# | |
# merge: | |
# - $ENV (already set or not) | |
# - user config (BEE_USER_CONFIG_FILE) | |
# - system config (BEE_CONFIG_FILE) | |
# - built-in defaults (see below) | |
# | |
function config_load_user_config() { | |
: ${BEE_USER_CONFIG_FILE:=${XDG_CONFIG_HOME}/bee/beerc} | |
# load user config | |
if [ -r "${BEE_USER_CONFIG_FILE}" ] ; then | |
. ${BEE_USER_CONFIG_FILE} | |
fi | |
} | |
function config_load_system_config() { | |
local IFS=":${IFS}" | |
if [ ! -z "${BEE_CONFIG_FILE}" -a -r "${BEE_CONFIG_FILE}" ] ; then | |
return | |
fi | |
BEE_CONFIG_FILE="" | |
# system config - search and take *first* readable | |
for dir in ${XDG_CONFIG_DIRS} ; do | |
xdgbeerc="${dir}/bee/beerc" | |
if [ -r "${xdgbeerc}" ] ; then | |
: ${BEE_CONFIG_FILE:=${xdgbeerc}} | |
fi | |
done | |
if [ -r ${BEE_CONFIG_FILE} ] ; then | |
. ${BEE_CONFIG_FILE} | |
fi | |
} | |
function config_set_skiplist() { | |
local IFS=":${IFS}" | |
if [ ! -z "${BEE_SKIPLIST}" -a -r "${BEE_SKIPLIST}" ] ; then | |
return | |
fi | |
BEE_SKIPLIST="" | |
# skiplist - search in user and system config - take *first* readable | |
for dir in ${XDG_CONFIG_HOME} ${XDG_CONFIG_DIRS} ; do | |
xdgskiplist="${dir}/bee/skiplist" | |
if [ -r "${xdgskiplist}" ] ; then | |
: ${BEE_SKIPLIST:=${xdgskiplist}} | |
return | |
fi | |
done | |
} | |
function config_verify_builtin_config() { | |
# set built-in default values based on uid | |
# - root gets system defaults.. | |
# - other get XDG_*_HOME defaults.. | |
if [ ${UID} -eq 0 ] ; then # root | |
: ${BEE_REPOSITORY_PREFIX=/usr/src/bee} | |
: ${BEE_METADIR=${BEE_XDG_DATADIR}/bee} | |
else # user | |
: ${BEE_REPOSITORY_PREFIX=${XDG_DATA_HOME}/beeroot} | |
: ${BEE_METADIR=${XDG_DATA_HOME}/beemeta} | |
fi | |
: ${BEE_TMP_TMPDIR:=/tmp} | |
: ${BEE_TMP_BUILDROOT:=${BEE_TMP_TMPDIR}/beeroot-${LOGNAME}} | |
: ${BEE_REPOSITORY_BEEDIR:=${BEE_REPOSITORY_PREFIX}/bees} | |
: ${BEE_REPOSITORY_PKGDIR:=${BEE_REPOSITORY_PREFIX}/pkgs} | |
: ${BEE_REPOSITORY_BUILDARCHIVEDIR:=${BEE_REPOSITORY_PREFIX}/build-archives} | |
} | |
function config_verify_builtin_prefixes() { | |
: ${PREFIX:=/usr} | |
: ${EPREFIX:='${PREFIX}'} | |
: ${BINDIR:='${EPREFIX}/bin'} | |
: ${SBINDIR:='${EPREFIX}/sbin'} | |
: ${LIBEXECDIR:='${EPREFIX}/lib/${PKGNAME}'} | |
: ${SYSCONFDIR:=DEFAULT} | |
: ${LOCALSTATEDIR:=DEFAULT} | |
: ${SHAREDSTATEDIR:='${LOCALSTATEDIR}'} | |
: ${LIBDIR:='${EPREFIX}/lib'} | |
: ${INCLUDEDIR:='${PREFIX}/include'} | |
: ${DATAROOTDIR:='${PREFIX}/share'} | |
: ${DATADIR:='${DATAROOTDIR}'} | |
: ${INFODIR:='${DATAROOTDIR}/info'} | |
: ${MANDIR:='${DATAROOTDIR}/man'} | |
: ${DOCDIR:='${DATAROOTDIR}/doc/gtkhtml'} | |
: ${LOCALEDIR:='${DATAROOTDIR}/locale'} | |
} | |
function expand_prefix_variables() { | |
if [ "${SYSCONFDIR}" = "DEFAULT" ] ; then | |
SYSCONFDIR="/etc" | |
if [ "${PREFIX}" != "/usr" -a "${PREFIX}" != "/usr/local" ] ; then | |
SYSCONFDIR="${PREFIX}${SYSCONFDIR}" | |
fi | |
fi | |
if [ "${LOCALSTATEDIR}" = "DEFAULT" ] ; then | |
LOCALSTATEDIR="/var" | |
if [ "${PREFIX}" != "/usr" -a "${PREFIX}" != "/usr/local" ] ; then | |
LOCALSTATEDIR="${PREFIX}${LOCALSTATEDIR}" | |
fi | |
fi | |
BEE_AUTO_EXCLUDE="" | |
for var in PREFIX EPREFIX BINDIR SBINDIR LIBEXECDIR SYSCONFDIR \ | |
SHAREDSTATEDIR LOCALSTATEDIR LIBDIR INCLUDEDIR \ | |
DATAROOTDIR DATADIR INFODIR LOCALEDIR MANDIR DOCDIR ; do | |
eval eval ${var}=\${${var}} | |
eval 'BEE_AUTO_EXCLUDE="${BEE_AUTO_EXCLUDE} \${${var}}"' | |
done | |
eval "BEE_AUTO_EXCLUDE=\"${BEE_AUTO_EXCLUDE}\"" | |
} | |
function config_init() { | |
config_init_base_config | |
config_handle_deprecated_config | |
config_load_user_config | |
config_load_system_config | |
config_verify_builtin_config | |
config_verify_builtin_prefixes | |
} | |
function config_export() { | |
export BEE_REPOSITORY_PREFIX | |
export BEE_REPOSITORY_BEEDIR | |
export BEE_REPOSITORY_PKGDIR | |
export BEE_REPOSITORY_BUILDARCHIVEDIR | |
export BEE_METADIR | |
export BEE_TMP_TMPDIR | |
export BEE_TMP_BUILDROOT | |
export BEE_SYSCONFDIR | |
export BEE_DATADIR | |
export BEE_LIBEXECDIR | |
export BEE_VERSION | |
export XDG_CONFIG_HOME | |
export XDG_CONFIG_DIRS | |
export XDG_DATA_HOME | |
export XDG_DATA_DIRS | |
} |