App-Sandy

 view release on metacpan or  search on metacpan

inc/SandyMakeMaker.pm  view on Meta::CPAN

package inc::SandyMakeMaker;
# ABSTRACT: Install bash/zsh completion and database

use Moose;

extends 'Dist::Zilla::Plugin::MakeMaker::Awesome';

override _build_MakeFile_PL_template => sub {
	my $self = shift;
	my $template = super();

	$template .= << 'TEMPLATE';
package MY;

use File::ShareDir::Install;

# These two are necessary to keep bmake happy
sub xs_c {
	my $self = shift;
	my $ret = $self->SUPER::xs_c(@_);
	$ret =~ s/\$\*\.xs/\$</g;
	$ret =~ s/\$\*\.c\b/\$@/g;
	return $ret;
}

sub c_o {
	my $self = shift;
	my $ret = $self->SUPER::c_o(@_);
	$ret =~ s/\$\*\.c\b/\$</g;
	$ret =~ s/\$\*\$\(OBJ_EXT\)/\$@/g;
	return $ret;
}

sub const_cccmd {
	my $ret = shift->SUPER::const_cccmd(@_);
	return q{} unless $ret;

	$ret .= ' -o $@';

	return $ret;
}

# Fix shared object path
sub constants {
	my $self = shift;
	my $ret = $self->SUPER::constants(@_);
	$ret =~ s|(?<=\nFULLEXT).*\n| = App/Sandy/RNG\n|;
	$ret =~ s|(?<=\nBASEEXT).*\n| = RNG\n|;
	return $ret;
}

sub postamble {
	my $self = shift;
	my @ret = File::ShareDir::Install::postamble($self);

	my $cmd = q{
# --- App::Sandy custom postamble section:
LFS_URL = https://media.githubusercontent.com/media/galantelab/sandy/master/share/assets/db.sqlite3
INST_DB = $(INST_LIB)/auto/share/dist/$(DISTNAME)
INST_SHARE = blib/share
INSTALLSHARE = /usr/share
DESTINSTALLSHARE = $(DESTDIR)$(INSTALLSHARE)
PERM_DB_DIR = 0777
PERM_DB = 666

pure_perl_install :: all
	-$(NOECHO) $(CHMOD) $(PERM_DB_DIR) "$(DESTINSTALLPRIVLIB)/auto/share/dist/$(DISTNAME)"
	-$(NOECHO) $(CHMOD) $(PERM_DB) "$(DESTINSTALLPRIVLIB)/auto/share/dist/$(DISTNAME)/db.sqlite3"
	-$(NOECHO) $(CHMOD) $(PERM_DB_DIR) "$(DESTINSTALLARCHLIB)/auto/share/dist/$(DISTNAME)"
	-$(NOECHO) $(CHMOD) $(PERM_DB) "$(DESTINSTALLARCHLIB)/auto/share/dist/$(DISTNAME)/db.sqlite3"

pure_site_install :: all
	-$(NOECHO) $(CHMOD) $(PERM_DB_DIR) "$(DESTINSTALLSITELIB)/auto/share/dist/$(DISTNAME)"
	-$(NOECHO) $(CHMOD) $(PERM_DB) "$(DESTINSTALLSITELIB)/auto/share/dist/$(DISTNAME)/db.sqlite3"
	-$(NOECHO) $(CHMOD) $(PERM_DB_DIR) "$(DESTINSTALLSITEARCH)/auto/share/dist/$(DISTNAME)"
	-$(NOECHO) $(CHMOD) $(PERM_DB) "$(DESTINSTALLSITEARCH)/auto/share/dist/$(DISTNAME)/db.sqlite3"

pure_vendor_install :: all
	-$(NOECHO) $(CHMOD) $(PERM_DB_DIR) "$(DESTINSTALLVENDORLIB)/auto/share/dist/$(DISTNAME)"
	-$(NOECHO) $(CHMOD) $(PERM_DB) "$(DESTINSTALLVENDORLIB)/auto/share/dist/$(DISTNAME)/db.sqlite3"
	-$(NOECHO) $(CHMOD) $(PERM_DB_DIR) "$(DESTINSTALLVENDORARCH)/auto/share/dist/$(DISTNAME)"
	-$(NOECHO) $(CHMOD) $(PERM_DB) "$(DESTINSTALLVENDORARCH)/auto/share/dist/$(DISTNAME)/db.sqlite3"

pure_perl_install :: all
	-$(NOECHO) $(MOD_INSTALL) \
		read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \
		write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \
		"$(INST_SHARE)" "$(DESTINSTALLSHARE)"

pure_site_install :: all
	-$(NOECHO) $(MOD_INSTALL) \
		read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \
		write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \
		"$(INST_SHARE)" "$(DESTINSTALLSHARE)"

pure_vendor_install :: all
	-$(NOECHO) $(MOD_INSTALL) \
		read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \
		write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \
		"$(INST_SHARE)" "$(DESTINSTALLSHARE)"

config :: config_lfs
	$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_DB)'\'')' -- \
		'share/assets/db.sql' '$(INST_DB)/db.sql' \
		'share/assets/db.sqlite3' '$(INST_DB)/db.sqlite3'



( run in 1.396 second using v1.01-cache-2.11-cpan-98e64b0badf )