#!/bin/bash . pbs-plumb-shlib ## # Usage: list FILE # stdout: A newline-separated list of settings in FILE ## list() { [[ $# != 1 ]] && { usage; return 1; } local file=$1 git config --file "$file" -z --list | awk -vRS='\0' -vFS='\n' '{ print $1 }' && return $PIPESTATUS } ## # Usage: get FILE SETTING # stdout: The raw value of SETTING in FILE; *not* terminated by a newline ## get() { [[ $# != 2 ]] && { usage; return 1; } local file=$1 local setting=$2 git config --file "$file" -z --get "$setting" } usage() { echo "Usage: ${0##*/} COMMAND [-h] [COMMAND-ARGUMENTS]" echo 'Work with `/etc/libretools.d/pbs-convert.conf`.' echo echo "Commands:" echo " list List the variables set in the file" echo " get VARNAME Get the value of VARNAME" echo echo 'Options:' echo ' -h Show this message' } main() { in_array '-h' "$@" && { usage; return 0; } [[ $# < 1 ]] && { usage >&2; return 1; } local cmd=$1 shift local file="/etc/libretools.d/pbs-convert.conf" case "$cmd" in list) list "$file" "$@" return $?;; get) get "$file" "$@" return $?;; *) usage >&2 return 1;; esac } main "$@"