From 07e6945507ba3a4386d12b7ab8f3c79f1fbe485c Mon Sep 17 00:00:00 2001 From: sergiotarxz Date: Mon, 18 Jan 2021 00:26:09 +0100 Subject: [PATCH] Getting the config on root dir and solving a build bug. --- Makefile.PL | 47 +++++++++++++++---- javascript_interpreter_xs/javascript.xs | 2 +- ...ertube-dl-web.conf => peertube-dl-web.conf | 0 3 files changed, 40 insertions(+), 9 deletions(-) rename bin/peertube-dl-web.conf => peertube-dl-web.conf (100%) diff --git a/Makefile.PL b/Makefile.PL index 8ac7fca..965b185 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,4 +1,8 @@ use ExtUtils::MakeMaker; +use File::Basename; +use Const::Fast; + +const my $CONFIG_FILE => dirname(__FILE__) . '/peertube-dl-web.conf'; WriteMakefile( NAME => 'Peertube::DL', @@ -10,12 +14,39 @@ WriteMakefile( DIR => [ 'src', 'javascript_interpreter_xs/' ], ); -sub MY::postamble { - ' -src: src/Makefile - src && $(MAKE) $(PASSTHRU) -javascript_interpreter_xs: javascript_interpreter_xs/Makefile - cd javascript_interpreter_xs/ && $(MAKE) $(PASSTHRU) -'; -} +package MY { + sub top_targets { + my $self = shift; + my $return = $self->SUPER::top_targets(@_); + $return = [ split /\n/, $return ]; + for my $i ( keys @$return ) { + $return->[$i] .= ' install_config' if $return->[$i] =~ /^all :/; + } + return join "\n", @$return; + } + + sub const_config { + my $self = shift; + my $return = $self->SUPER::const_config(@_); + + open my $fh, '<', $CONFIG_FILE or die "No config file"; + my $config = eval( join ' ', <$fh> ); + close $fh; + + chomp $return; + return $return . ' +THEME = ' . ( $config->{theme} // 'default' ) . "\n"; + } + + sub postamble { + return + "\n" + . "install_config :\n" + . "\tinstall peertube-dl-web.conf bin/peertube-dl-web.conf\n" + . "src: src/Makefile\n" + . "\tcd src && $(MAKE) $(PASSTHRU)\n" + . "javascript_interpreter_xs: javascript_interpreter_xs/Makefile\n" + . "\tcd javascript_interpreter_xs/ && $(MAKE) $(PASSTHRU)\n"; + } +} diff --git a/javascript_interpreter_xs/javascript.xs b/javascript_interpreter_xs/javascript.xs index b7854c5..c749c03 100644 --- a/javascript_interpreter_xs/javascript.xs +++ b/javascript_interpreter_xs/javascript.xs @@ -92,7 +92,7 @@ _duk_call_function(SV *, SV *, ...) } duk_size_t *lstring_len; duk_call(context, 1); - char * return_value = duk_get_lstring(context, -1, lstring_len); + const char * return_value = duk_get_lstring(context, -1, lstring_len); if ( (top_index = duk_get_top_index(context)) != DUK_INVALID_INDEX ) { duk_pop_n(context, top_index+1); } diff --git a/bin/peertube-dl-web.conf b/peertube-dl-web.conf similarity index 100% rename from bin/peertube-dl-web.conf rename to peertube-dl-web.conf