Peertube-dl/Makefile.PL

60 lines
1.8 KiB
Perl

use ExtUtils::MakeMaker;
use File::Basename;
use Const::Fast;
const my $CONFIG_FILE => dirname(__FILE__) . '/peertube-dl-web.conf';
WriteMakefile(
NAME => 'Peertube::DL',
VERSION => '0.1',
INST_SCRIPT => './bin',
INST_BIN => './bin',
test => { TESTS => 't/*.t' },
test => { TESTS => 't/*/*.t' },
DIR => [ 'src', 'javascript_interpreter_xs/' ],
);
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 build_frontend install_frontend'
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_frontend : build_frontend\n"
. "\tif [ ! -e lib/Peertube/DL/public/ ];"
. " then mkdir -pv lib/Peertube/DL/public/;" . " fi\n"
. "\tcp -rfv themes/\${THEME}/public/dist/* lib/Peertube/DL/public/\n"
. "build_frontend :\n"
. "\tcd themes/\${THEME}/public && yarn install && yarn build\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";
}
}