git-vendor-name: MarkdownResume-Pipeline
git-vendor-dir: vendor/git.knownelement.com/reachableceo/MarkdownResume-Pipeline
git-vendor-repository: https://git.knownelement.com/reachableceo/MarkdownResume-Pipeline.git
git-vendor-ref: main
This commit is contained in:
Charles N Wyble 2024-12-13 16:03:48 -06:00
commit f6744e3393

View File

@ -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 <<EOF >> $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 <<EOF >> $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 <<EOF >> $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 <<EOF >> $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 <<EOF >> $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 <<EOF >> $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 <<EOF >> $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 <<EOF >> $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 <<EOF >> $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 <<EOF >> $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 <<EOF >> $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
}