mirror of https://git.envs.net/envs/ops.git
works. but we need to find a small "name field"-bug:
eg.: ``` newfoo=linew newfoo=linex newfoo=liney newfoo=linez "newfoo": [ "linew", "linez" ], ``` but it works with: ``` wfoo=linew wfoo=linex wfoo=liney wfoo=linez "wfoo": [ "linew", "linex", "liney", "linez" ], ```
This commit is contained in:
parent
5f6a15e311
commit
1fc25b4c7f
|
@ -19,6 +19,7 @@ TMP_JSON='/tmp/users_info.json_tmp'
|
||||||
|
|
||||||
clear_lastline() { sed -i '$ s/,$//' "$TMP_JSON" ; }
|
clear_lastline() { sed -i '$ s/,$//' "$TMP_JSON" ; }
|
||||||
|
|
||||||
|
|
||||||
progress_userarray() {
|
progress_userarray() {
|
||||||
for field in "${!line_to_set[@]}"; do
|
for field in "${!line_to_set[@]}"; do
|
||||||
field_name="${field//,*/}"
|
field_name="${field//,*/}"
|
||||||
|
@ -26,7 +27,7 @@ progress_userarray() {
|
||||||
|
|
||||||
if [[ ":${field_is_array[*]}:" =~ $field_name ]] && ! [[ ":${field_finished[*]}:" =~ $field_name ]]; then
|
if [[ ":${field_is_array[*]}:" =~ $field_name ]] && ! [[ ":${field_finished[*]}:" =~ $field_name ]]; then
|
||||||
# begin of user def. array
|
# begin of user def. array
|
||||||
if [ -z "$field_in_progress" ]; then
|
if [ -z "$field_in_progress" ] && [ "$field_count" -eq 0 ]; then
|
||||||
field_in_progress="$field_name"
|
field_in_progress="$field_name"
|
||||||
cat << EOM >> "$TMP_JSON"
|
cat << EOM >> "$TMP_JSON"
|
||||||
"$field_name": [
|
"$field_name": [
|
||||||
|
@ -48,10 +49,8 @@ EOM
|
||||||
unset field_in_progress
|
unset field_in_progress
|
||||||
field_finished+=( "$field_name" )
|
field_finished+=( "$field_name" )
|
||||||
fi
|
fi
|
||||||
else
|
elif ! [ "$field_in_progress" = "$field_name" ] && ! [[ ":${field_queue[*]}:" =~ $field_name ]]; then
|
||||||
if ! [ "$field_in_progress" = "$field_name" ] && ! [[ ":${field_queue[*]}:" =~ $field_name ]]; then
|
field_queue+=( "$field_name" )
|
||||||
field_queue+=( "$field_name" )
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -156,8 +155,7 @@ EOM
|
||||||
fi
|
fi
|
||||||
# user custom infos from .envs file (max. 10 entrys)
|
# user custom infos from .envs file (max. 10 entrys)
|
||||||
if [ -f "$INFO_FILE" ]; then
|
if [ -f "$INFO_FILE" ]; then
|
||||||
count_entry='0' # use to limit entrys
|
count_entry='0'
|
||||||
count_field_entry='0' # use to separat array line by line
|
|
||||||
|
|
||||||
unset field_exists ; declare -a field_exists=() # contains field names to limit entrys
|
unset field_exists ; declare -a field_exists=() # contains field names to limit entrys
|
||||||
unset field_is_array ; declare -a field_is_array=() # contains array fields to printf correct json entrys
|
unset field_is_array ; declare -a field_is_array=() # contains array fields to printf correct json entrys
|
||||||
|
@ -173,8 +171,8 @@ EOM
|
||||||
|
|
||||||
if ! [[ ":${field_exists[*]}:" =~ $user_field ]]; then
|
if ! [[ ":${field_exists[*]}:" =~ $user_field ]]; then
|
||||||
# entry will be a single line
|
# entry will be a single line
|
||||||
count_entry="$(( "$count_entry" + 1 ))" ; count_field_entry="$(( "$count_field_entry" +1 ))"
|
count_field_entry='0'
|
||||||
#[ "$count_entry" -le '10' ] || continue
|
count_entry="$(( "$count_entry" + 1 ))" ; [ "$count_entry" -lt '10' ] || continue
|
||||||
|
|
||||||
field_exists+=( "$user_field" )
|
field_exists+=( "$user_field" )
|
||||||
line_to_set["$user_field","$count_field_entry"]+="$user_value"
|
line_to_set["$user_field","$count_field_entry"]+="$user_value"
|
||||||
|
@ -183,8 +181,7 @@ EOM
|
||||||
if ! [[ ":${field_is_array[*]}:" =~ $user_field ]]; then
|
if ! [[ ":${field_is_array[*]}:" =~ $user_field ]]; then
|
||||||
field_is_array+=( "$user_field" )
|
field_is_array+=( "$user_field" )
|
||||||
fi
|
fi
|
||||||
count_field_entry="$(( "$count_field_entry" +1 ))"
|
count_field_entry="$(( "$count_field_entry" +1 ))" ; [ "$count_field_entry" -lt '32' ] || continue
|
||||||
#[ "$count_field_entry" -le '32' ] || continue
|
|
||||||
|
|
||||||
hc_field_entry[$user_field]="$count_field_entry"
|
hc_field_entry[$user_field]="$count_field_entry"
|
||||||
line_to_set["$user_field","$count_field_entry"]+="$user_value"
|
line_to_set["$user_field","$count_field_entry"]+="$user_value"
|
||||||
|
@ -213,7 +210,8 @@ EOM
|
||||||
|
|
||||||
progress_userarray
|
progress_userarray
|
||||||
|
|
||||||
if [[ -n "$field_queue" ]]; then
|
if [ -n "${line_to_set[*]}" ]; then
|
||||||
|
# shellcheck disable=SC2034
|
||||||
for x in "${!field_queue[@]}"; do
|
for x in "${!field_queue[@]}"; do
|
||||||
progress_userarray
|
progress_userarray
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in New Issue