-
Notifications
You must be signed in to change notification settings - Fork 223
/
Copy pathset_config
79 lines (57 loc) · 1.71 KB
/
set_config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/usr/bin/env bash
# shellcheck shell=bash
# ``````````````````````````````````````````````````````````````````````````````
# Function name: set_config()
#
# Description:
# Set config configuration.
#
# Usage:
# set_config
#
# Examples:
# set_config
#
function set_config() {
# shellcheck disable=SC2034
local _FUNCTION_ID="set_config"
local _STATE=0
# shellcheck disable=SC2034
local _session_arg=("$@")
local _session_key="${_session_arg[1]}"
local _session_value="${_session_arg[*]:2}"
# shellcheck disable=SC2154
local _session_num="${#_variables_stack[@]}"
local _acount=0
local _bcount=0
# shellcheck disable=SC2154
for _svar in "${_variables_stack[@]}" ; do
# shellcheck disable=SC2034
_key_description=$(echo "$_svar" | awk -v FS="(;|;)" '{print $1}')
# shellcheck disable=SC2034
_key_values=$(echo "$_svar" | awk -v FS="(;|;)" '{print $2}')
# shellcheck disable=SC2034
_key_id=$(echo "$_svar" | awk -v FS="(;|;)" '{print $3}')
# shellcheck disable=SC2034
_key_var=$(echo "$_svar" | awk -v FS="(;|;)" '{print $4}')
# For debug:
# printf "%s , %s , %s , %s\n" \
# "_session_key: $_session_key" \
# "_key_description: $_key_description" \
# "_key_values: $_key_values" \
# "_key_id: $_key_id" \
# "_key_var: $_key_var"
if [[ "$_key_id" == "$_session_key" ]] ; then
# shellcheck disable=SC2034
_key_var="$_session_value"
_variables_stack[$_acount]="${_key_description};${_key_values};${_key_id};${_key_var}"
else
_bcount=$((_bcount + 1))
fi
_acount=$((_acount + 1))
done
if [[ "$_session_num" -eq "$_bcount" ]] ; then
printf "stdout: %s\\n" "unknown key"
fi
return $_STATE
}