と私はキーを取得するためにyaml
ファイルスルー読み取りにpkuczynski's Gistを使用しようとしています。以下は読むYAMLはMakefileの
は私がする必要が午前何の試み(S)(多くの)一つです。私はエラーを取得していないが、単に空$(DEVURL)
:
config.yaml:
baseurl:
dev: "https://some-dev-url/"
stage: "https://a-staging-url/"
prod: "https://production-url"
のMakefile:
BASEDIR =$(CURDIR)
CONFDIR =$(BASEDIR)
OUTPUTDIR =$/../build
DEVDIR =$(OUTPUTDIR)/dev
PRODDIR =$(OUTPUTDIR)/prod
STAGEDIR =$(OUTPUTDIR)/stage
DEVCONF =$(CONFDIR)/config.dev.yml
PRODCONF =$(CONFDIR)/config.prod.yml
STAGECONF =$(CONFDIR)/config.stage.yml
USRCONFIG =$/../usr/config.yml
dev:
. $(BASEDIR)/parse_yaml.sh # include parse_yaml function
$(info $(parse_yaml $(USRCONFIG) 'config_')) # read yaml file
$(parse-yaml DEVURL is $(config_baseurl_dev)) # Get the baseurl:dev KEY
@echo ${DEVURL} # Print the DEVURL from KEY
sleep 1
rm -rfv $(DEVDIR) # Delete the DEVDIR b4 build
sleep 1
$(BUILDER) --config=$(DEVCONF) -b=$(DEVURL) # Inset the baseurl:dev KEY
がparse_yaml.sh:
#!/bin/sh
parse_yaml() {
local prefix=$2
local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034')
sed -ne "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" $1 |
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=\"%s\"\n", "'$prefix'",vn, $2, $3);
}
}'
}