diff options
| author | 2024-09-26 09:05:37 +0500 | |
|---|---|---|
| committer | 2024-09-26 09:05:37 +0500 | |
| commit | 7682c7aea3e71894ee69eb9b3e257d4eb74b8c81 (patch) | |
| tree | 7425bb9535099a27cd4eb4b8c41995be13fc235c /builder.sh | |
| parent | c2dab82cec1508a07ca1b4bbe8c56c96315f63d0 (diff) | |
update
Diffstat (limited to 'builder.sh')
| -rwxr-xr-x | builder.sh | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/builder.sh b/builder.sh new file mode 100755 index 0000000..1fcdd28 --- /dev/null +++ b/builder.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +declare -g configFile="./templates/config.yaml" +declare -g fileName +declare -g headJson +declare -g bodyJson + +declare -g schemeSystem +declare -g schemeSlug +declare -g schemeName +declare -g schemeAuthor +declare -g schemeVariant + +readarray -t schemesFiles < <(find "$HOME"/projects/schemes/base16/ -type f -iname '*.yaml') + +function createFile() { + # Extract filename entry from config + yq '.default.filename' "$configFile" >"/tmp/filename-base16-nwg-dock.txt" + + fileName=$(lustache-cli -i "/tmp/filename-base16-nwg-dock.txt" --json-data "$headJson") + + if [[ -e ./"$fileName" ]]; then + return + else + touch ./"$fileName" + fi +} + +function getProperty() { + yq -oy "$schemeFile" | yq -o=json -r ".$1" +} + +for schemeFile in "${schemesFiles[@]}"; do + schemeName=$(getProperty "name") + schemeAuthor=$(getProperty "author") + schemeSlug=$(basename "$schemeFile" .yaml) + schemeSlugUnderscored="${schemeSlug//-/_}" + schemeSystem=$(yq '.default.supported-systems[0]' "$configFile") + schemeVariant=$(getProperty "variant") + + headJson=$( + jq \ + --null-input \ + --arg schemeName "$schemeName" \ + --arg schemeAuthor "$schemeAuthor" \ + --arg schemeSlug "$schemeSlug" \ + --arg schemeSlugUnderscored "$schemeSlugUnderscored" \ + --arg schemeSystem "$schemeSystem" \ + --arg schemeVariant "$schemeVariant" \ + '{ "scheme-name": $schemeName, "scheme-author": $schemeAuthor, "scheme-slug": $schemeSlug, "scheme-slug-underscored": $schemeSlugUnderscored, "scheme-system": $schemeSystem, "scheme-variant": $schemeVariant, hasVariant: (if $schemeVariant != "" then "true" else "false" end) }' + ) + + bodyJson=$(getProperty "palette") + + createFile + + lustache-cli -i ./templates/head.mustache --json-data "$headJson" >./"$fileName" + + echo >>./"$fileName" + + lustache-cli -i ./templates/body.mustache --json-data "$bodyJson" >>./"$fileName" +done |
