diff options
author | Aaron Ball <nullspoon@oper.io> | 2017-06-26 19:09:46 -0600 |
---|---|---|
committer | Aaron Ball <nullspoon@oper.io> | 2017-06-26 19:09:46 -0600 |
commit | 81611fca3c81ee4eac32ccfb289c351800eedbd5 (patch) | |
tree | d499cf7dd8f95eda5672530aab0bc0c65ba73c07 | |
parent | 31c2b60760c34b9cb21ca5119d68e7fff05e8865 (diff) | |
download | portimg-81611fca3c81ee4eac32ccfb289c351800eedbd5.tar.gz portimg-81611fca3c81ee4eac32ccfb289c351800eedbd5.tar.xz |
libconfig:Removed library and inclusions
The only functionality using this library previously was libtemplate.
Since it was recently refactored to no longer require libconfig, it is
now being removed, as its functionality is a bit overengineered for the
current project needs.
Also removed source statements from pkgmk.sh and pkgimg.sh.
-rwxr-xr-x | bin/pkgimg.sh | 1 | ||||
-rwxr-xr-x | bin/pkgmk.sh | 1 | ||||
-rw-r--r-- | lib/config.sh | 181 |
3 files changed, 0 insertions, 183 deletions
diff --git a/bin/pkgimg.sh b/bin/pkgimg.sh index d093c45..7d0df70 100755 --- a/bin/pkgimg.sh +++ b/bin/pkgimg.sh @@ -23,7 +23,6 @@ export LIBDIR="${BASEDIR}/lib" source ${LIBDIR}/log.sh source ${LIBDIR}/pkg.sh -source ${LIBDIR}/config.sh source ${LIBDIR}/common.sh export PORTSDIR=${PORTSDIR:-${BASEDIR}/ports} diff --git a/bin/pkgmk.sh b/bin/pkgmk.sh index c155297..8b88e0d 100755 --- a/bin/pkgmk.sh +++ b/bin/pkgmk.sh @@ -22,7 +22,6 @@ export BASEDIR="$(cd $(dirname ${0})/../ && pwd)" export LIBDIR="${BASEDIR}/lib" source ${LIBDIR}/log.sh -source ${LIBDIR}/config.sh source ${LIBDIR}/template.sh source ${LIBDIR}/port.sh diff --git a/lib/config.sh b/lib/config.sh deleted file mode 100644 index afc186c..0000000 --- a/lib/config.sh +++ /dev/null @@ -1,181 +0,0 @@ -#!/usr/bin/env bash -# -# Libconfig provides basic global configuration key/value support -# Copyright (C) 2016 Aaron Ball <nullspoon@oper.io> -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# - -# -# libconfig -# --------- -# Libconfig provides support for a global configuration associative array -# called 'configs'. -# -# This provides an easy way to store configuration data in a unified location. -# With this data in a predictable unified location, it can easily be dumped and -# reviewed. -# -# This also provides support to easily load single-dimensional delimited -# configuration files through the load_config_with_delim function. This will -# populate the global configs associative array with any key-value pairs that -# are found. -# - -set -u - -# Header guard -if [[ -z ${!configs[@]} && -z ${__configssetup:-} ]]; then - # Configs associative array is undefined - # Define it along with the global reconstruction string, currently empty. - declare -xA configs - declare -x __configssetup='' -elif [[ ! -z ${__configssetup:-} ]]; then - # Configs undefined, but reconstruction code was found - # Reconstruct using __configssetup - # NOTE: This is a terrible hack to work around the bug in bash that disallows - # passing of arrays and associative arrays to subshells. - eval ${__configssetup} -fi - - -# -# Parses the specified file, loading into the global configs associative array, -# key-value pairs seperated by the specified delimiter. Leading and trailing -# whitespace is removed to allow for human-friendly indentation. Comments are -# also supported where the line starts with the common # comment character. -# -# Examples: -# -# key = value -# key-two = value2 -# -# - or - -# -# key: value -# key-two: value2 -# -# @param file Path to file to parse and load -# @param delim Delimiter to use for seperating keys and values. -# -function load_config_with_delim { - [[ -z ${1} ]] && log error "File argument required." && exit 1 - [[ -z ${2} ]] && log error "Delimiter argument required." && exit 1 - - local file=${1} - local delim=${2} - - [[ ! -f ${file} ]] && log error "Could not find config '${file}'" && exit 1 - - local contents=$(cat ${file} | grep -v '^ *#' | grep -v '^[ ]*$' | sed 's/^ \+//') - - local oldifs=${IFS} - export IFS=$'\n' - for i in ${contents[@]}; do - local key=$(echo ${i} | cut -d "${delim}" -f 1 | sed -e 's/ \+$//' -e 's/["'\'']//g') - local val=$(echo ${i} | cut -d "${delim}" -f 2 | sed -e 's/^ \+//' -e 's/["'\'']//g') - configs[$key]="${val}" - done - export IFS=${oldifs} -} - - -# -# Dumps the global associative array to stdout. Output format is an -# alphabetically sorted, space-delimited, aligned table (uses the column command -# for alignment). Output is cumbersome for computers to parse, but easy to read -# for humans. Useful for debugging. -# -# NOTE: Uses the 'ø' character for column delimiting because it is a very rare -# character in most languages. If a config key or value contains this -# character, output may be mangled. -# -function dump_configs { - # Using something really strange to reduce the chance that we split on a - # charcter that exists in a key or value. - local delim='ø' - - # Set the table header - local header="Key${delim}Value\n---${delim}-----\n" - local out='' - - # configs needs to be a global associative array - for key in ${!configs[@]}; do - out="${out}${key}${delim}${configs[$key]}\n" - done - - # Sort the variables - out="$(echo -e ${out} | sort)" - - # Output - echo -e "\nEnvironment:\n" - echo -e "${header}${out}" | column -s ${delim} -t - echo -} - - -# -# Setter for the global configs data structure. -# -# NOTE: It is *highly* recommended to use this function to update values in the -# global configs associative array because it will regenerate the -# reconstruction string used for serializing the global assoc array for -# passing to subshells. -# -# @param key Key to set -# @param val Value to set -# -function config_set { - local key=${1:-} - local val=${2:-} - - [[ -z ${key} ]] && log error "Key argument (1) required." && exit 1 - - configs[$key]="${val}" - - # Update the reconstruction string so it has the new value - __configssetup=$(declare -p configs) -} - - -# -# Getter for the global configs data structure. This function provides a bit of -# added safety over the bash square bracket query, since this distinguishes -# between unset and empty and will error if requested key could not be found. -# -# @param key Key to get -# -function config_get { - local key=${1:-} - - [[ -z ${key} ]] && log error "Key argument (1) required." && return 1 - - # Iterrate over the keys and return if a matching key is found. - # - # This is less efficient than just querying for the key using the bash square - # bracket construct. However, this provides more flexibility in that if a - # variable is not set, it allows us to exit gracefully with a log message - # instead of just exiting. - # This also allows the code to distinguish between unset and empty. The bash - # square bracket functionality does not make this distrinction. - for i in ${!configs[@]}; do - if [[ ${i} == ${key} ]]; then - echo ${configs[$key]} - return 0 - fi - done - - log error "Config ${key} is not set." - return 1 -} |