#!/usr/bin/env bash usage() { printf "\nUsage:\n" >&2 printf "\n $rvm_path/scripts/db database_file {{key}} {{value}} # set" >&2 printf "\n $rvm_path/scripts/db database_file {{key}} # get" >&2 printf "\n $rvm_path/scripts/db database_file {{key}} unset # unset\n\n" >&2 } if [[ -f "$1" ]] ; then database_file="$1" ; shift if [[ ! -f "$database_file" ]] ; then \mkdir -p $(dirname $database_file) \touch $database_file fi else printf "\n\nDatabase file $1 does not exist.\n\n" >&2 exit 1 fi key="$1" ; shift if [[ -z "$key" ]] ; then usage exit 1 else value="$*" if [[ "unset" = "$value" ]] || [[ "delete" = "$value" ]] ; then sed -i.tmp -e "s#^$key=.*\$##" -e '/^$/d' $database_file else if [[ -z "$value" ]] ; then # get awk -F= '/^'"$key"'=/' $database_file | sed -e "s#^$key=##" -e '/^$/d' else # set if [[ -z "$(awk -F= "/^'"$key"'=/{print $2}" $database_file)" ]] ; then # append echo "$key=$value" >> $database_file else # overwrite sed -i.tmp "s#^$key=.*\$#$key=$value#" $database_file fi fi fi fi