try really hard to find a localenv if one isn't already in place
This commit is contained in:
@@ -2,25 +2,40 @@
|
|||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings FATAL => 'all';
|
use warnings FATAL => 'all';
|
||||||
use Path::Class 'file';
|
|
||||||
|
|
||||||
|
use FindBin;
|
||||||
|
FindBin::again();
|
||||||
|
|
||||||
|
our $home;
|
||||||
|
|
||||||
|
# try really hard to find a localenv if one isn't already in place.
|
||||||
BEGIN {
|
BEGIN {
|
||||||
|
$home = ($ENV{NETDISCO_HOME} || $ENV{HOME});
|
||||||
eval "use Daemon::Control";
|
eval "use Daemon::Control";
|
||||||
|
|
||||||
if ($@) {
|
if ($@) {
|
||||||
exec(file($ENV{HOME}, 'bin', 'localenv'), $0, @ARGV);
|
use File::Spec;
|
||||||
|
my $localenv = File::Spec->catfile($FindBin::RealBin, 'localenv');
|
||||||
|
exec($localenv, $0, @ARGV) if -f $localenv;
|
||||||
|
$localenv = File::Spec->catfile($home, 'perl5', 'bin', 'localenv');
|
||||||
|
exec($localenv, $0, @ARGV) if -f $localenv;
|
||||||
|
die "Sorry, can't find libs required for App::Netdisco.\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
use Path::Class;
|
use Path::Class;
|
||||||
my $log_dir = dir($ENV{HOME}, 'logs');
|
|
||||||
mkdir $log_dir if ! -d $log_dir;
|
|
||||||
|
|
||||||
my $program = file($ENV{HOME}, 'bin', 'netdisco-daemon-fg');
|
my $netdisco = file($FindBin::RealBin, 'netdisco-daemon-fg');
|
||||||
|
my @args = (scalar @ARGV > 1 ? @ARGV[1 .. $#ARGV] : ());
|
||||||
|
|
||||||
|
my $log_dir = dir($home, 'logs');
|
||||||
|
mkdir $log_dir if ! -d $log_dir;
|
||||||
|
|
||||||
Daemon::Control->new({
|
Daemon::Control->new({
|
||||||
name => 'Netdisco Daemon',
|
name => 'Netdisco Daemon',
|
||||||
program => ($ENV{NETDISCO_DAEMON} || $program),
|
program => $netdisco,
|
||||||
pid_file => file($ENV{HOME}, 'netdisco-daemon.pid'),
|
program_args => [@args],
|
||||||
|
pid_file => file($home, 'netdisco-daemon.pid'),
|
||||||
stderr_file => file($log_dir, 'netdisco-daemon.log'),
|
stderr_file => file($log_dir, 'netdisco-daemon.log'),
|
||||||
stdout_file => file($log_dir, 'netdisco-daemon.log'),
|
stdout_file => file($log_dir, 'netdisco-daemon.log'),
|
||||||
})->run;
|
})->run;
|
||||||
|
|||||||
@@ -6,17 +6,31 @@ use warnings FATAL => 'all';
|
|||||||
use FindBin;
|
use FindBin;
|
||||||
FindBin::again();
|
FindBin::again();
|
||||||
|
|
||||||
use Path::Class;
|
our $home;
|
||||||
use Daemon::Control;
|
|
||||||
|
# try really hard to find a localenv if one isn't already in place.
|
||||||
|
BEGIN {
|
||||||
|
$home = ($ENV{NETDISCO_HOME} || $ENV{HOME});
|
||||||
|
eval "use Daemon::Control";
|
||||||
|
|
||||||
|
if ($@) {
|
||||||
|
use File::Spec;
|
||||||
|
my $localenv = File::Spec->catfile($FindBin::RealBin, 'localenv');
|
||||||
|
exec($localenv, $0, @ARGV) if -f $localenv;
|
||||||
|
$localenv = File::Spec->catfile($home, 'perl5', 'bin', 'localenv');
|
||||||
|
exec($localenv, $0, @ARGV) if -f $localenv;
|
||||||
|
die "Sorry, can't find libs required for App::Netdisco.\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
use Path::Class;
|
||||||
|
|
||||||
my $home = ($ENV{NETDISCO_HOME} || $ENV{HOME});
|
|
||||||
my $netdisco = file($FindBin::RealBin, 'netdisco-web-fg');
|
my $netdisco = file($FindBin::RealBin, 'netdisco-web-fg');
|
||||||
|
my @args = (scalar @ARGV > 1 ? @ARGV[1 .. $#ARGV] : ());
|
||||||
|
|
||||||
my $log_dir = dir($home, 'logs');
|
my $log_dir = dir($home, 'logs');
|
||||||
mkdir $log_dir if ! -d $log_dir;
|
mkdir $log_dir if ! -d $log_dir;
|
||||||
|
|
||||||
my @args = (scalar @ARGV > 1 ? @ARGV[1 .. $#ARGV] : ());
|
|
||||||
|
|
||||||
Daemon::Control->new({
|
Daemon::Control->new({
|
||||||
name => 'Netdisco Web',
|
name => 'Netdisco Web',
|
||||||
program => 'plackup',
|
program => 'plackup',
|
||||||
|
|||||||
Reference in New Issue
Block a user