blob: 1fcdd2808d885a863c575af096ce4e25b82030f0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
|