You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
978 B
28 lines
978 B
#!/bin/bash
|
|
|
|
# Read JSON input from stdin
|
|
file_contents=$(cat LEAFheaders.json)
|
|
|
|
echo $file_contents
|
|
# Extract headers from JSON input
|
|
headers=$(echo $file_contents | jq -c '.headerTemplates[]')
|
|
|
|
# Loop over headers and build insert statement
|
|
insert_stmt="INSERT INTO LEAFHeaders (Header, HeaderRegex, ValueRegex, Nullable) VALUES "
|
|
while read -r header; do
|
|
header_name=$(echo "$header" | jq -r '.Header')
|
|
header_regex=$(echo "$header" | jq -r '.HeaderRegex')
|
|
value_regex=$(echo "$header" | jq -r '.ValueRegex')
|
|
nullable=$(echo "$header" | jq -r '.Nullable')
|
|
|
|
# Escape single quotes in header name and regex strings
|
|
header_name=${header_name//\'/\'\'}
|
|
header_regex=${header_regex//\'/\'\'}
|
|
value_regex=${value_regex//\'/\'\'}
|
|
|
|
# Build insert statement for header
|
|
insert_stmt+="('$header_name', '$header_regex', '$value_regex', $nullable),"
|
|
done <<< "$headers"
|
|
|
|
# Remove trailing comma and print insert statement as CSV
|
|
echo "${insert_stmt%,};" | tr -d '\n'
|
|
|