From cec42371c8d7500a8f73c6b603c5d10b92edaf7e Mon Sep 17 00:00:00 2001 From: Guillaume Rousse <guillaume.rousse@renater.fr> Date: Tue, 1 Feb 2022 10:11:52 +0100 Subject: [PATCH] use relative location and environment variable to find other components at runtime, avoiding substitution at install time --- bin/Makefile.am | 31 ++---------------- bin/access-check-manager.cgi.in | 32 ------------------- ...-manager.pl.in => access-check-manager.pl} | 8 ++--- bin/app | 14 ++++++++ bin/{update-metadata.in => update-metadata} | 7 ++-- t/01compile.t | 2 +- 6 files changed, 26 insertions(+), 68 deletions(-) delete mode 100755 bin/access-check-manager.cgi.in rename bin/{access-check-manager.pl.in => access-check-manager.pl} (98%) create mode 100755 bin/app rename bin/{update-metadata.in => update-metadata} (96%) diff --git a/bin/Makefile.am b/bin/Makefile.am index a415dda..8058726 100644 --- a/bin/Makefile.am +++ b/bin/Makefile.am @@ -1,30 +1,5 @@ -bin_SCRIPTS = access-check-manager.pl update-metadata +appbindir = $(pkgdatadir)/bin -www_SCRIPTS = access-check-manager.cgi +appbin_SCRIPTS = app access-check-manager.pl update-metadata -CLEANFILES = $(bin_SCRIPTS) $(www_SCRIPTS) - -EXTRA_DIST = access-check-manager.pl.in \ - access-check-manager.cgi.in \ - update-metadata.in - -access-check-manager.pl: Makefile access-check-manager.pl.in - sed \ - -e 's|[@]modulesdir[@]|$(modulesdir)|' \ - -e 's|[@]confdir[@]|$(confdir)|' \ - < $(srcdir)/$@.in > $@ - chmod +x $@ - -update-metadata: Makefile update-metadata.in - sed \ - -e 's|[@]modulesdir[@]|$(modulesdir)|' \ - -e 's|[@]confdir[@]|$(confdir)|' \ - < $(srcdir)/$@.in > $@ - chmod +x $@ - -access-check-manager.cgi: Makefile access-check-manager.cgi.in - sed \ - -e 's|[@]modulesdir[@]|$(modulesdir)|' \ - -e 's|[@]confdir[@]|$(confdir)|' \ - < $(srcdir)/$@.in > $@ - chmod +x $@ +EXTRA_DIST = $(appbin_SCRIPTS) diff --git a/bin/access-check-manager.cgi.in b/bin/access-check-manager.cgi.in deleted file mode 100755 index bac9ef5..0000000 --- a/bin/access-check-manager.cgi.in +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/perl -T - -use strict; -use warnings; -use utf8; -use lib qw(@modulesdir@); - -use Config::Tiny; -use File::Basename; - -use AccountManager::App; - -my $configuration_file = - $ENV{ACCOUNTMANAGER_CONFIG} || '@confdir@/manager.conf'; -my $configuration = Config::Tiny->read($configuration_file, 'utf8'); -if (!$configuration) { - die Config::Tiny->errstr() . "\n"; -} - -my $configuration_directory = dirname($configuration_file); - -my $app = AccountManager::App->new( - configuration => $configuration, - custom_l10n => sprintf("%s/l10n", $configuration_directory) -); -$app->run(); - -__END__ - -=head1 NAME - -account-manager-web.pl - Web interface for the Test IdP Account Manager diff --git a/bin/access-check-manager.pl.in b/bin/access-check-manager.pl similarity index 98% rename from bin/access-check-manager.pl.in rename to bin/access-check-manager.pl index 35948ee..90c5158 100755 --- a/bin/access-check-manager.pl.in +++ b/bin/access-check-manager.pl @@ -3,14 +3,15 @@ use strict; use warnings; use utf8; -use lib qw(@modulesdir@); + +use Mojo::File qw(curfile); +use lib curfile()->dirname()->sibling('lib')->to_string; use Config::Tiny; use Data::Dumper; use DateTime; use English qw(-no_match_vars); use Getopt::Long qw(:config auto_help); -use Log::Any::Adapter; use Pod::Usage; use AccountManager::Account; @@ -43,8 +44,7 @@ pod2usage( -verbose => 0 ) unless $action; -my $configuration_file = - $options{configuration} || '@confdir@/manager.conf'; +my $configuration_file = $ENV{MOJO_CONFIG} || 'conf/manager.conf'; my $configuration = Config::Tiny->read($configuration_file); if (!$configuration) { die Config::Tiny->errstr() . "\n"; diff --git a/bin/app b/bin/app new file mode 100755 index 0000000..2e5da3f --- /dev/null +++ b/bin/app @@ -0,0 +1,14 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Mojo::File qw(curfile); +use lib curfile()->dirname()->sibling('lib')->to_string; + +use AccountManager::App; + +my $app = AccountManager::App->new( + moniker => 'AccessCheck', +); +$app->start(); diff --git a/bin/update-metadata.in b/bin/update-metadata similarity index 96% rename from bin/update-metadata.in rename to bin/update-metadata index 38a9747..0a78257 100755 --- a/bin/update-metadata.in +++ b/bin/update-metadata @@ -2,7 +2,9 @@ use strict; use warnings; -use lib qw(@modulesdir@); + +use Mojo::File qw(curfile); +use lib curfile()->dirname()->sibling('lib')->to_string; use Config::Tiny; use English qw(-no_match_vars); @@ -26,8 +28,7 @@ GetOptions( -verbose => 0 ); -my $configuration_file = - $options{configuration} || '@confdir@/manager.conf'; +my $configuration_file = $ENV{MOJO_CONFIG} || 'conf/manager.conf'; my $configuration = Config::Tiny->read($configuration_file); if (!$configuration) { die Config::Tiny->errstr() . "\n"; diff --git a/t/01compile.t b/t/01compile.t index f3c8196..cefa863 100755 --- a/t/01compile.t +++ b/t/01compile.t @@ -14,7 +14,7 @@ my $test = Test::Compile->new(); ok( $test->pl_file_compiles($_), $_ -) foreach qw(bin/access-check-manager.cgi bin/access-check-manager.pl); +) foreach qw(bin/app bin/update-metadata bin/access-check-manager.pl); ok( $test->pm_file_compiles($_), $_ -- GitLab