Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- function parse_yaml {
- local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034')
- sed -ne "s|^\($s\):|\1|" \
- -e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p" \
- -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $@ |
- awk -F$fs '{
- indent = length($1)/2;
- vname[indent] = $2;
- for (i in vname) {if (i > indent) {delete vname[i]}}
- if (length($3) > 0) {
- vn=""; for (i=0; i<indent; i++) {vn=(vn)(vname[i])("_")}
- printf("%s%s:%s\n", vn, $2, $3);
- }
- }'
- }
- function generate_replacement {
- awk -F: '{
- VAL[$1] = $2;
- }
- END {
- for (key in VAL) {
- printf "-e '\''s/\\\$%s\\\$/%s/'\'' ", key, VAL[key];
- }
- }' $@
- }
- params=$(parse_yaml <<EOF
- color:
- bg: #424F60
- line: #CED6DE
- dark: #28343F
- light: #60748B
- note:
- bg: #FBFCA8
- line: #BBBC88
- font:
- main: DejaVu Serif
- note: DejaVu Serif
- EOF
- <<EOF
- color:
- bg: #111111
- EOF)
- replacement_params=$(generate_replacement <(echo "$params"))
- eval "find ./ -type f -name uml.skin -exec sed -i '' $replacement_params {} \;"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement