diff --git a/Makefile b/Makefile index 462a7675c6b55b1b49ee14d5e3a5a54ddd871aa6..6eb0a1178cdbc6a8d48683c718ee5bc414f9a15b 100644 --- a/Makefile +++ b/Makefile @@ -117,6 +117,7 @@ export FEEDS export GLUON_GENERATE := $(GLUONDIR)/scripts/generate.sh +export GLUON_CONFIGURE := $(GLUONDIR)/scripts/configure.pl feeds: FORCE diff --git a/packages_gluon b/packages_gluon index c57f81b7c4a498828e54e8026a9178dbc639d87b..65769f82507c9771de137451aaa2a45c57708dc3 160000 --- a/packages_gluon +++ b/packages_gluon @@ -1 +1 @@ -Subproject commit c57f81b7c4a498828e54e8026a9178dbc639d87b +Subproject commit 65769f82507c9771de137451aaa2a45c57708dc3 diff --git a/scripts/configure.pl b/scripts/configure.pl index 50c5237c76f29619e72e553e5d4188c37669a9f7..4ef2d13189576ee96099a3ed16b1e24f47db5263 100755 --- a/scripts/configure.pl +++ b/scripts/configure.pl @@ -4,37 +4,7 @@ use warnings; use strict; -my %config; +our $CONFIG = do $ENV{GLUONDIR} . '/site/site.conf'; -sub add_config { - my ($prefix, $c) = @_; - - foreach my $key (keys $c) { - my $val = $c->{$key}; - - if (ref($val) eq 'HASH') { - add_config($key . '.', $val); - } - unless (ref($val)) { - $config{'@' . $prefix . $key . '@'} = $val; - } - } -} - -sub read_config { - my $input = shift; - my $CONFIG = do $input; - add_config('', $CONFIG); -} - - -read_config 'site/site.conf'; - - -my $regex = join '|', map {quotemeta} keys %config; - - -for (<>) { - s/($regex)/${config{$1}}/g; - print; -} +my $script = shift @ARGV; +do $script; diff --git a/scripts/generate.pl b/scripts/generate.pl new file mode 100644 index 0000000000000000000000000000000000000000..4c0723c83a4a39b73dfbbd1060e2dcf0b681c967 --- /dev/null +++ b/scripts/generate.pl @@ -0,0 +1,30 @@ +use warnings; + + +my %config; + +sub add_config { + my ($prefix, $c) = @_; + + foreach my $key (keys $c) { + my $val = $c->{$key}; + + if (ref($val) eq 'HASH') { + add_config($key . '.', $val); + } + unless (ref($val)) { + $config{'@' . $prefix . $key . '@'} = $val; + } + } +} + +add_config('', $CONFIG); + + +my $regex = join '|', map {quotemeta} keys %config; + + +for (<>) { + s/($regex)/${config{$1}}/g; + print; +} diff --git a/scripts/generate.sh b/scripts/generate.sh index 1db9c40c8e94f4aa4b116e52453858118d8ce6a3..667df4003a0428fadbf7ecff5e713315f247c867 100755 --- a/scripts/generate.sh +++ b/scripts/generate.sh @@ -4,8 +4,6 @@ set -e declare -a IN -GLUONDIR="$(dirname "$0")/.." - for ((i = 1; i < $#; i++)); do IN[$i]="${!i}" @@ -23,7 +21,7 @@ for S in "${IN[@]}"; do ( D="$(dirname "$FILE")" mkdir -p "$OUT/$D" - (cd "$GLUONDIR"; scripts/configure.pl) < "$FILE" > "$OUT/$FILE" + (cd "$GLUONDIR"; scripts/configure.pl scripts/generate.pl) < "$FILE" > "$OUT/$FILE" chmod --reference="$FILE" "$OUT/$FILE" done ); done