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.
 
 
 
 
 
 
PortfolioLink/database/json2sql.sh

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'