Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- CONF_TEMP="conf.temp"
- makeConfigCache() {
- local conf_file="$1"
- local line conf_group conf_group_name conf_name conf_val conf_level
- local conf_level=0
- declare -a conf_group
- while read line ; do
- [[ "${line:0:2}" == "//" ]] && continue
- line=`echo "$line" | sed 's/ =/=/g' | sed 's/= /=/g'`
- conf_name="${line%=*}"
- conf_name="${conf_name// /}"
- [[ -z "$conf_name" ]] && continue
- conf_val="${line#*=}"
- if [[ -z "$conf_val" || "${conf_name}" == "$conf_val" ]] ; then
- if [[ "${conf_name:0:1}" == "{" ]] ; then
- conf_level=$(($conf_level + 1))
- elif [[ "${conf_name:0:1}" == "}" ]] ; then
- unset conf_group[$conf_level]
- conf_level=$(($conf_level - 1))
- else
- conf_group[$conf_level]="$conf_name"
- conf_group_name="${conf_group[@]}"
- conf_group_name="${conf_group_name/ /_}"
- fi
- else
- conf_val="${conf_val//;/}"
- conf_val=`echo $conf_val`
- echo "${conf_group_name}_${conf_name}=${conf_val}" >> $CONF_TEMP
- fi
- done < <(awk 1 $conf_file)
- }
- getValList() {
- local pattern="$1"
- local line
- while read line ; do
- if [[ $line =~ $pattern ]] ; then
- echo "${line//${pattern}_/}"
- fi
- done < <(awk 1 $CONF_TEMP)
- }
- rm -f $CONF_TEMP
- makeConfigCache $1
- getValList "services"
- getValList "services" | cut -f1 -d"="
Add Comment
Please, Sign In to add comment