From d8eb0eefcc4e591cd4f57636711940ab954d4d82 Mon Sep 17 00:00:00 2001 From: Charles N Wyble Date: Fri, 13 Dec 2024 16:03:14 -0600 Subject: [PATCH] first run of json support... --- build/build-pipeline-server-json.sh | 450 +++++++++++++++------------- 1 file changed, 234 insertions(+), 216 deletions(-) diff --git a/build/build-pipeline-server-json.sh b/build/build-pipeline-server-json.sh index 9365cff..ffe163e 100644 --- a/build/build-pipeline-server-json.sh +++ b/build/build-pipeline-server-json.sh @@ -32,6 +32,8 @@ META } + + add_basics_section() { @@ -56,147 +58,47 @@ BASICS } -add_work_section() + +# Bash Function to Append JSON +add_profiles_section () + { - local input_file=$JSON_TEMPLATE_DIRECTORY/work.csv - cat << 'WORK_START' - - "work": [ -WORK_START - awk -F, 'NR>1 { - printf " {\n" - printf " \"name\": \"%s\",\n", $1 - printf " \"position\": \"%s\",\n", $2 - printf " \"url\": \"%s\",\n", $3 - printf " \"startDate\": \"%s\",\n", $4 - if ($5 != "") printf " \"endDate\": \"%s\",\n", $5 - printf " \"summary\": \"%s\",\n", $6 - printf " \"highlights\": [\n \"%s\"\n ]\n", gensub(/\|/, "\",\n \"", "g", $7) - printf " }%s\n", (NR==NR?"":",") - }' "$input_file" - cat << 'WORK_END' - ], -WORK_END + echo '{"profiles": [' >> $BUILD_OUTPUT_DIR/resume.json + while IFS=, read -r username url network; do + cat <> $BUILD_OUTPUT_DIR/resume.json + { + "username": "$username", + "url": "$url", + "network": "$network" + }, +EOF + done < $JSON_TEMPLATE_DIRECTORY/profiles.csv + # Remove trailing comma and close JSON array + sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json + echo ']}' >> $BUILD_OUTPUT_DIR/resume.json } -add_volunteer_section() +add_certificates_section() { - local input_file="$JSON_TEMPLATE_DIRECTORY/volunteer.csv" - cat << 'VOLUNTEER_START' >> $BUILD_OUTPUT_DIR/resume.json + echo '{"certificates": [' >> $BUILD_OUTPUT_DIR/resume.json + while IFS=, read -r name date issuer url; do + cat <> $BUILD_OUTPUT_DIR/resume.json + { + "name": "$name", + "date": "$date", + "issuer": "$issuer", + "url": "$url" + }, +EOF + done < $JSON_TEMPLATE_DIRECTORY/certificates.csv - "volunteer": [ -VOLUNTEER_START - - awk -F, 'NR>1 { - printf " {\n" - printf " \"organization\": \"%s\",\n", $1 - printf " \"position\": \"%s\",\n", $2 - printf " \"url\": \"%s\",\n", $3 - printf " \"startDate\": \"%s\",\n", $3 - printf " \"endDate\": \"%s\",\n", $3 - printf " \"summary\": \"%s\"\n", $4 - printf " \"highlights\": [" - printf " " $7 - printf " ]" - printf " }%s\n", (NR==NR?"":",") - }' "$input_file" - cat << 'VOLUNTEER_END' - ], -VOLUNTEER_END - -} - -add_awards_section() - -{ - - local input_file=$JSON_TEMPLATE_DIRECTORY/awards.csv - cat << 'AWARDS_START' >> $BUILD_OUTPUT_DIR/resume.json - "awards": [ -AWARDS_START - awk -F, 'NR>1 { - printf " {\n" - printf " \"title\": \"%s\",\n", $1 - printf " \"date\": \"%s\",\n", $2 - printf " \"awarder\": \"%s\",\n", $3 - printf " \"summary\": \"%s\"\n", $4 - printf " }%s\n", (NR==NR?"":",") - }' "$input_file" - cat << 'AWARDS_END' - ], -AWARDS_END -} - - -add_publications_section() - -{ - - local input_file=$JSON_TEMPLATE_DIRECTORY/publications.csv - cat << 'PUBLICATIONS_START' >> $BUILD_OUTPUT_DIR/resume.json - "publications": [ -PUBLICATIONS_START - awk -F, 'NR>1 { - printf " {\n" - printf " \"name\": \"%s\",\n", $1 - printf " \"publisher\": \"%s\",\n", $2 - printf " \"releaseDate\": \"%s\",\n", $3 - printf " \"url\": \"%s\",\n", $4 - printf " \"summary\": \"%s\"\n", $5 - printf " }%s\n", (NR==NR?"":",") - }' "$input_file" - cat << 'PUBLICATIONS_END' - ], -PUBLICATIONS_END - -} - -add_volunteer_section() - -{ - - local input_file=$JSON_TEMPLATE_DIRECTORY/volunteer.csv - cat << 'VOLUNTEER_START' >> $BUILD_OUTPUT_DIR/resume.json - "volunteer": [ -VOLUNTEER_START - awk -F, 'NR>1 { - printf " {\n" - printf " \"organization\": \"%s\",\n", $1 - printf " \"position\": \"%s\",\n", $2 - printf " \"url\": \"%s\",\n", $3 - printf " \"startDate\": \"%s\",\n", $4 - printf " \"summary\": \"%s\",\n", $5 - printf " \"highlights\": [\n \"%s\"\n ]\n", gensub(/\|/, "\",\n \"", "g", $6) - printf " }%s\n", (NR==NR?"":",") - }' "$input_file" - cat << 'VOLUNTEER_END' - ], -VOLUNTEER_END - -} - -add_skills_section() - -{ - - local input_file="$JSON_TEMPLATE_DIRECTORY/skills.csv" - cat << 'SKILLS_START' >> $BUILD_OUTPUT_DIR/resume.json - "skills": [ -SKILLS_START - awk -F, 'NR>1 { - printf " {\n" - printf " \"keywords\": [\n \"%s\"\n ],\n", gensub(/\|/, "\",\n \"", "g", $3) - printf " \"level\": \"%s\",\n", $2 - printf " \"name\": \"%s\"\n", $1 - printf " }%s\n", (NR==NR?"":",") - }' "$input_file" - cat << 'SKILLS_END' - ], -SKILLS_END + # Remove trailing comma and close JSON array + sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json + echo ']}' >> $BUILD_OUTPUT_DIR/resume.json } @@ -204,64 +106,25 @@ add_education_section() { - local input_file="$JSON_TEMPLATE_DIRECTORY/education.csv" - cat << 'EDUCATION_START' >> $BUILD_OUTPUT_DIR/resume.json - "education": [ -EDUCATION_START - awk -F, 'NR>1 { - printf " {\n" - printf " \"institution\": \"%s\",\n", $1 - if ($2 != "") printf " \"url\": \"%s\",\n", $2 - printf " \"area\": \"%s\",\n", $3 - printf " \"studyType\": \"%s\",\n", $4 - printf " \"startDate\": \"%s\",\n", $5 - printf " \"endDate\": \"%s\"", $6 - if ($7 != "") printf ",\n \"score\": \"%s\"", $7 - if ($8 != "") printf ",\n \"courses\": [\n \"%s\"\n ]", gensub(/\|/, "\",\n \"", "g", $8) - printf "\n }%s\n", (NR==NR?"":",") - }' "$input_file" - cat << 'EDUCATION_END' - ], -EDUCATION_END + echo '{"education": [' >> $BUILD_OUTPUT_DIR/resume.json + while IFS=, read -r institution url area studyType startDate endDate score courses; do + cat <> $BUILD_OUTPUT_DIR/resume.json + { + "institution": "$institution", + "url": "$url", + "area": "$area", + "studyType": "$studyType", + "startDate": "$startDate", + "endDate": "$endDate", + "score": "$score", + "courses": [$(echo "$courses" | sed 's/;/","/g' | sed 's/^/"/;s/$/"/')] + }, +EOF + done < $JSON_TEMPLATE_DIRECTORY/education.csv -} - -add_languages_section() - -{ - - local input_file="$JSON_TEMPLATE_DIRECTORY/languages.csv" - cat << 'LANGUAGES_START' >> $BUILD_OUTPUT_DIR/resume.json - "languages": [ -LANGUAGES_START - awk -F, 'NR>1 { - printf " {\n" - printf " \"language\": \"%s\",\n", $1 - printf " \"fluency\": \"%s\"\n", $2 - printf " }%s\n", (NR==NR?"":",") - }' "$input_file" - cat << 'LANGUAGES_END' - ], -LANGUAGES_END - -} - -add_interests_section() - -{ - local input_file="$JSON_TEMPLATE_DIRECTORY/interests.csv" - cat << 'INTERESTS_START' >> $BUILD_OUTPUT_DIR/resume.json - "interests": [ -INTERESTS_START - awk -F, 'NR>1 { - printf " {\n" - printf " \"name\": \"%s\",\n", $1 - printf " \"keywords\": [\n \"%s\"\n ]\n", gensub(/\|/, "\",\n \"", "g", $2) - printf " }%s\n", (NR==NR?"":",") - }' "$input_file" - cat << 'INTERESTS_END' - ], -INTERESTS_END + # Remove trailing comma and close JSON array + sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json + echo ']}' >> $BUILD_OUTPUT_DIR/resume.json } @@ -269,22 +132,178 @@ add_references_section() { - local input_file="$JSON_TEMPLATE_DIRECTORY/references.csv" - cat << 'REFERENCES_START' >> $BUILD_OUTPUT_DIR/resume.json - "references": [ -REFERENCES_START - awk -F, 'NR>1 { - printf " {\n" - printf " \"name\": \"%s\",\n", $1 - printf " \"reference\": \"%s\"\n", $2 - printf " }%s\n", (NR==NR?"":",") - }' "$input_file" - cat << 'REFERENCES_END' - ] -REFERENCES_END + echo '{"references": [' >> $BUILD_OUTPUT_DIR/resume.json + while IFS=, read -r reference name; do + cat <> $BUILD_OUTPUT_DIR/resume.json + { + "reference": "$reference", + "name": "$name" + }, +EOF + done < $JSON_TEMPLATE_DIRECTORY/references.csv + + # Remove trailing comma and close JSON array + sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json + echo ']}' >> $BUILD_OUTPUT_DIR/resume.json } +add_skills_section() + +{ + + echo '{"skills": [' >> $BUILD_OUTPUT_DIR/resume.json + while IFS=, read -r name level keywords; do + cat <> $BUILD_OUTPUT_DIR/resume.json + { + "name": "$name", + "level": "$level", + "keywords": [$(echo "$keywords" | sed 's/;/","/g' | sed 's/^/"/;s/$/"/')] + }, +EOF + done < $JSON_TEMPLATE_DIRECTORY/skills.csv + + # Remove trailing comma and close JSON array + sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json + echo ']}' >> $BUILD_OUTPUT_DIR/resume.json + +} + +add_awards_section() + +{ + + echo '{"awards": [' >> $BUILD_OUTPUT_DIR/resume.json + while IFS=, read -r title awarder date summary; do + cat <> $BUILD_OUTPUT_DIR/resume.json + { + "title": "$title", + "awarder": "$awarder", + "date": "$date", + "summary": "$summary" + }, +EOF + done < $JSON_TEMPLATE_DIRECTORY/awards.csv + + # Remove trailing comma and close JSON array + sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json + echo ']}' >> $BUILD_OUTPUT_DIR/resume.json + +} + +add_publications_section() + +{ + + echo '{"publications": [' >> $BUILD_OUTPUT_DIR/resume.json + while IFS=, read -r name publisher releaseDate url summary; do + cat <> $BUILD_OUTPUT_DIR/resume.json + { + "name": "$name", + "publisher": "$publisher", + "releaseDate": "$releaseDate", + "url": "$url", + "summary": "$summary" + }, +EOF + done < $JSON_TEMPLATE_DIRECTORY/publications.csv + + # Remove trailing comma and close JSON array + sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json + echo ']}' >> $BUILD_OUTPUT_DIR/resume.json + +} + +add_volunteer_section() + +{ + + echo '{"volunteer": [' >> $BUILD_OUTPUT_DIR/resume.json + while IFS=, read -r organization position url startDate summary highlights; do + cat <> $BUILD_OUTPUT_DIR/resume.json + { + "organization": "$organization", + "position": "$position", + "url": "$url", + "startDate": "$startDate", + "summary": "$summary", + "highlights": [$(echo "$highlights" | sed 's/;/","/g' | sed 's/^/"/;s/$/"/')] + }, +EOF + done < $JSON_TEMPLATE_DIRECTORY/volunteer.csv + + # Remove trailing comma and close JSON array + sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json + echo ']}' >> $BUILD_OUTPUT_DIR/resume.json + +} + +add_work_section() + +{ + + echo '{"work": [' >> $BUILD_OUTPUT_DIR/resume.json + while IFS=, read -r name position location website startDate endDate summary highlights; do + cat <> $BUILD_OUTPUT_DIR/resume.json + { + "name": "$name", + "position": "$position", + "location": "$location", + "website": "$website", + "startDate": "$startDate", + "endDate": "$endDate", + "summary": "$summary", + "highlights": [$(echo "$highlights" | sed 's/;/","/g' | sed 's/^/"/;s/$/"/')] + }, +EOF + done < $JSON_TEMPLATE_DIRECTORY/work.csv + + # Remove trailing comma and close JSON array + sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json + echo ']}' >> $BUILD_OUTPUT_DIR/resume.json + +} + + +add_languages_section() + +{ + + echo '{"languages": [' >> $BUILD_OUTPUT_DIR/resume.json + while IFS=, read -r language fluency; do + cat <> $BUILD_OUTPUT_DIR/resume.json + { + "language": "$language", + "fluency": "$fluency" + }, +EOF + done < $JSON_TEMPLATE_DIRECTORY\languages.csv + + # Remove trailing comma and close JSON array + sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json + echo ']}' >> $BUILD_OUTPUT_DIR/resume.json + +} + +add_interests_section() + +{ + + echo '{"interests": [' >> $BUILD_OUTPUT_DIR/resume.json + while IFS=, read -r name keywords; do + cat <> $BUILD_OUTPUT_DIR/resume.json + { + "name": "$name", + "keywords": [$(echo "$keywords" | sed 's/;/","/g' | sed 's/^/"/;s/$/"/')] + }, +EOF + done < $JSON_TEMPLATE_DIRECTORY\interests.csv + + # Remove trailing comma and close JSON array + sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json + echo ']}' >> $BUILD_OUTPUT_DIR/resume.json + +} add_close_section() @@ -299,20 +318,19 @@ main() { add_open_section - add_meta_section $JSON_TEMPLATE_DIRECTORY/meta.csv - add_basics_section $JSON_TEMPLATE_DIRECTORY/basics.csv - add_profiles_section $JSON_TEMPLATE_DIRECTORY/profiles.csv - add_work_section $JSON_TEMPLATE_DIRECTORY/work.csv - add_volunteer_section $JSON_TEMPLATE_DIRECTORY/volunteer.csv - add_education-section $JSON_TEMPLATE_DIRECTORY/education.csv - add_awards_section $JSON_TEMPLATE_DIRECTORY/awards.csv - add_certificates_section $JSON_TEMPLATE_DIRECTORY/certificates.csv - add_publications_section $JSON_TEMPLATE_DIRECTORY/publications.csv - add_skills_section $JSON_TEMPLATE_DIRECTORY/skills.csv - add_languages_section $JSON_TEMPLATE_DIRECTORY/languages.csv - add_interests_section $JSON_TEMPLATE_DIRECTORY/interests.csv - add_references_section $JSON_TEMPLATE_DIRECTORY/references.csv - add_projects_section $JSON_TEMPLATE_DIRECTORY/projects.csv + add_meta_section + add_basics_section + add_profiles_section + add_work_section + add_volunteer_section + add_education-section + add_awards_section + add_certificates_section + add_publications_section + add_skills_section + add_languages_section + add_interests_section + add_references_section add_close_section }