60 lines
1.8 KiB
Perl
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";
|
|
}
|
|
}
|