#!/bin/bash
#########################################################
# 							#
# This is BashStyle-NG					#
#							#
# Licensed under GNU GENERAL PUBLIC LICENSE v3    	#
#							#
# Copyright 2007 - 2019 Christopher Bratusek		#
#							#
#########################################################

alias bt="check bt"
alias bf="check bf"

# by Richard Hansen https://stackoverflow.com/a/7287873

log () { printf '%s\n' "$*"; }
error () { log "ERROR: $*" >&2; }
fatal () { error "$@"; exit 1; }

trap_add () {
    trap_add_cmd=$1; shift || fatal "${FUNCNAME[0]} usage error"
    for trap_add_name in "$@"; do
        trap -- "$(
            extract_trap_cmd() { printf '%s\n' "$3"; }
            eval "extract_trap_cmd $(trap -p "${trap_add_name}")"
            printf '%s\n' "${trap_add_cmd}"
        )" "${trap_add_name}" \
            || fatal "unable to add to trap ${trap_add_name}"
    done
}

declare -f -t trap_add

ini_get ()
{
	sed -n "s/^${1} = \(.*$\)/\1/p" "${HOME}"/.bs-ng.ini | sed -e 's/\"//g'
}

def_get ()
{
	sed -n "s/^${1} = \(.*$\)/\1/p" \
		"${BSNG_DATADIR}"/bashstyle-ng/bs-ng.ini | \
		sed -e 's/\"//g'
}

ven_get ()
{
	[[ -f /etc/bs-ng_vendor.ini ]] && sed -n "s/^${1} = \(.*$\)/\1/p" \
		/etc/bs-ng_vendor.in | sed -e 's/\"//g'
}

ini_set ()
{
	SETTING=${1}
	shift
	VALUE="${*}"

	sed -e "s/^${SETTING} = .*$/${SETTING} = ${VALUE}/" -i "${HOME}"/.bs-ng.ini
}

ini_add ()
{
	SECTION=${1}
	shift
	VALUE="${*}"

	sed -e "/\[${SECTION}\]/ a ${VALUE}" -i "${HOME}"/.bs-ng.ini
}

rc_add ()
{
	dbg_msg "$@"
	echo "${@}" >> "${RC_FILE}"
}
