54 lines
1.2 KiB
Bash
Executable File
54 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
PROJECT_DB_FILE="/src/.tamarinrc"
|
|
GLOBAL_DB_FILE="${TAMARIN_WORKSPACE}/.tamarinrc"
|
|
KEY_PREFIX="tamarin_db_"
|
|
|
|
function tamarin_load_project_db {
|
|
if [ -e "${PROJECT_DB_FILE}" ]; then
|
|
tamarin_info "Loading project database..."
|
|
while read line; do
|
|
if [[ ! "${line}" =~ ^\s*# ]]; then
|
|
set -- $(echo $line | tr '=' ' ')
|
|
local key=$1
|
|
local value=$2
|
|
tamarin_debug "Load $key=$value"
|
|
tamarin_db_set $key $value
|
|
fi
|
|
done < "${PROJECT_DB_FILE}"
|
|
fi
|
|
}
|
|
|
|
function tamarin_db_get {
|
|
local opt_name=${KEY_PREFIX}${1}
|
|
local default_value=${@:2}
|
|
touch "${GLOBAL_DB_FILE}"
|
|
source "${GLOBAL_DB_FILE}"
|
|
echo ${!opt_name:-${default_value}}
|
|
}
|
|
|
|
function tamarin_db_set {
|
|
local opt_name=${1}
|
|
local opt_value=${@:2}
|
|
mkdir -p "$(dirname ${GLOBAL_DB_FILE})"
|
|
touch "${GLOBAL_DB_FILE}"
|
|
sed -i "s/^${KEY_PREFIX}${opt_name}*$//" "${GLOBAL_DB_FILE}"
|
|
echo "local ${KEY_PREFIX}${opt_name}=\"${opt_value}\"" >> "${GLOBAL_DB_FILE}"
|
|
}
|
|
|
|
case $1 in
|
|
set)
|
|
tamarin_db_set ${@:2}
|
|
;;
|
|
get)
|
|
tamarin_db_get ${@:2}
|
|
;;
|
|
load)
|
|
tamarin_load_project_db
|
|
;;
|
|
*)
|
|
tamarin_error "Invalid action '$1'. Must be get, set or load !"
|
|
exit 1
|
|
;;
|
|
esac
|