mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-09 10:39:02 -04:00
Implement support for portable installations.
This commit is contained in:
parent
5a95d907d4
commit
87bb27a7a7
19
configure
vendored
19
configure
vendored
@ -38,7 +38,7 @@ use warnings FATAL => qw(all);
|
||||
|
||||
use File::Basename qw(basename);
|
||||
use File::Copy ();
|
||||
use File::Spec::Functions qw(catdir rel2abs);
|
||||
use File::Spec::Functions qw(catfile catdir rel2abs);
|
||||
use FindBin qw($RealDir);
|
||||
use Getopt::Long qw(GetOptions);
|
||||
use POSIX qw(getgid getuid);
|
||||
@ -61,6 +61,7 @@ my ($opt_binary_dir,
|
||||
$opt_log_dir,
|
||||
$opt_manual_dir,
|
||||
$opt_module_dir,
|
||||
$opt_portable,
|
||||
$opt_prefix,
|
||||
$opt_script_dir,
|
||||
$opt_socketengine,
|
||||
@ -93,6 +94,7 @@ exit 1 unless GetOptions(
|
||||
'log-dir=s' => \$opt_log_dir,
|
||||
'manual-dir=s' => \$opt_manual_dir,
|
||||
'module-dir=s' => \$opt_module_dir,
|
||||
'portable' => \$opt_portable,
|
||||
'prefix=s' => \$opt_prefix,
|
||||
'script-dir=s' => \$opt_script_dir,
|
||||
'socketengine=s' => \$opt_socketengine,
|
||||
@ -130,6 +132,7 @@ our $interactive = !(
|
||||
defined $opt_log_dir ||
|
||||
defined $opt_manual_dir ||
|
||||
defined $opt_module_dir ||
|
||||
defined $opt_portable ||
|
||||
defined $opt_prefix ||
|
||||
defined $opt_script_dir ||
|
||||
defined $opt_socketengine ||
|
||||
@ -186,7 +189,19 @@ if (defined $opt_socketengine) {
|
||||
}
|
||||
$config{SOCKETENGINE} = $opt_socketengine // $socketengines[0];
|
||||
|
||||
if (defined $opt_system) {
|
||||
if (defined $opt_portable) {
|
||||
print_error '--portable and --system can not be used together!' if defined $opt_system;
|
||||
$config{DESTDIR} = catfile $RealDir, 'run', '';
|
||||
$config{BASE_DIR} = $opt_prefix // '';
|
||||
$config{BINARY_DIR} = $opt_binary_dir // 'bin';
|
||||
$config{CONFIG_DIR} = $opt_config_dir // 'conf';
|
||||
$config{DATA_DIR} = $opt_data_dir // 'data';
|
||||
$config{EXAMPLE_DIR} = $opt_example_dir // catdir $config{CONFIG_DIR}, 'examples';
|
||||
$config{LOG_DIR} = $opt_log_dir // 'logs';
|
||||
$config{MANUAL_DIR} = $opt_manual_dir // 'manuals';
|
||||
$config{MODULE_DIR} = $opt_module_dir // 'modules';
|
||||
$config{SCRIPT_DIR} = $opt_script_dir // $config{BASE_DIR};
|
||||
} elsif (defined $opt_system) {
|
||||
$config{BASE_DIR} = $opt_prefix // '/var/lib/inspircd';
|
||||
$config{BINARY_DIR} = $opt_binary_dir // '/usr/sbin';
|
||||
$config{CONFIG_DIR} = $opt_config_dir // '/etc/inspircd';
|
||||
|
@ -272,10 +272,12 @@ sub parse_templates($$$) {
|
||||
chomp $line;
|
||||
|
||||
# Does this line match a variable?
|
||||
while ($line =~ /(@(\w+?)@)/) {
|
||||
my ($variable, $name) = ($1, $2);
|
||||
while ($line =~ /(@(\w+?)(?:\|(\w*))?@)/) {
|
||||
my ($variable, $name, $default) = ($1, $2, $3);
|
||||
if (defined $settings{$name}) {
|
||||
$line =~ s/\Q$variable\E/$settings{$name}/;
|
||||
} elsif (defined $default) {
|
||||
$line =~ s/\Q$variable\E/$default/;
|
||||
} else {
|
||||
print_warning "unknown template variable '$name' in $_!";
|
||||
last;
|
||||
|
@ -49,6 +49,7 @@ LDLIBS = -lstdc++
|
||||
CORELDFLAGS = -rdynamic -L.
|
||||
PICLDFLAGS = -fPIC -shared -rdynamic
|
||||
|
||||
DESTDIR := $(if $(DESTDIR),$(DESTDIR),"@DESTDIR|@")
|
||||
BASE = "$(DESTDIR)@BASE_DIR@"
|
||||
BINPATH = "$(DESTDIR)@BINARY_DIR@"
|
||||
CONPATH = "$(DESTDIR)@CONFIG_DIR@"
|
||||
|
Loading…
x
Reference in New Issue
Block a user