#!/bin/bash -e call=$1 function iterate() { local env_var_name=$1 local env_var=${!env_var_name} if [ "$(complex-bash-env isTable "$env_var")" = true ]; then complex-bash-env stripTablePrefix "${env_var}" else echo "${env_var_name}" fi } function isTable() { local env_var=$1 if [ "$(echo "${env_var}" | grep "#COMPLEX_BASH_ENV:TABLE:" -c )" -eq 1 ]; then echo true else echo false fi } function isRow() { local env_var=$1 if [ "$(echo "${env_var}" | grep "#COMPLEX_BASH_ENV:ROW:" -c )" -eq 1 ]; then echo true else echo false fi } function getRowKey() { local env_var=$1 local row_key_var_name row_key_var_name=$(complex-bash-env getRowKeyVarName "$env_var") echo "${!row_key_var_name}" } function getRowValue() { local env_var=$1 local row_value_var_name row_value_var_name=$(complex-bash-env getRowValueVarName "$env_var") echo "${!row_value_var_name}" } function getRowKeyVarName() { local env_var=$1 local row=($(complex-bash-env getRow "$env_var")) echo "${row[0]}" } function getRowValueVarName() { local env_var=$1 local row=($(complex-bash-env getRow "$env_var")) echo "${row[1]}" } function getRow() { local env_var env_var=$1 if [ "$(complex-bash-env isRow "$env_var")" = true ]; then local env_var env_var=$(complex-bash-env stripRowPrefix "$env_var") echo "${env_var}" else echo "$env_var is not a complex bash env row" exit 1 fi } function stripTablePrefix() { local env_var=$1 stripPrefix "$env_var" "#COMPLEX_BASH_ENV:TABLE:" } function stripRowPrefix() { local env_var=$1 stripPrefix "$env_var" "#COMPLEX_BASH_ENV:ROW:" } function stripPrefix() { local env_var=$1 local prefix=$2 local r=${env_var#$prefix} echo "${r}" } shift $call "$@"