#
# InspIRCd -- Internet Relay Chat Daemon
#
+# Copyright (C) 2020 Nicole Kleinhoff <ilbelkyr@shalture.org>
+# Copyright (C) 2020 Daniel Vassdal <shutter@canternet.org>
# Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions>
# Copyright (C) 2019 Anatole Denis <natolumin@rezel.net>
# Copyright (C) 2017 emerson <github@emersonveenstra.net>
$opt_module_dir,
$opt_portable,
$opt_prefix,
+ $opt_runtime_dir,
$opt_script_dir,
$opt_socketengine,
$opt_system,
'module-dir=s' => \$opt_module_dir,
'portable' => \$opt_portable,
'prefix=s' => \$opt_prefix,
+ 'runtime-dir=s' => \$opt_runtime_dir,
'script-dir=s' => \$opt_script_dir,
'socketengine=s' => \$opt_socketengine,
'system' => \$opt_system,
);
if (scalar(@opt_enableextras) + scalar(@opt_disableextras) > 0) {
- @opt_enableextras = split /[, ]+/, join(',', @opt_enableextras);
- @opt_disableextras = split /[, ]+/, join(',', @opt_disableextras);
+ @opt_enableextras = grep { /\S/ } split /[, ]+/, join(',', @opt_enableextras);
+ @opt_disableextras = grep { /\S/ } split /[, ]+/, join(',', @opt_disableextras);
enable_extras(@opt_enableextras);
disable_extras(@opt_disableextras);
list_extras;
defined $opt_module_dir ||
defined $opt_portable ||
defined $opt_prefix ||
+ defined $opt_runtime_dir ||
defined $opt_script_dir ||
defined $opt_socketengine ||
defined $opt_system ||
$config{LOG_DIR} = $opt_log_dir // 'logs';
$config{MANUAL_DIR} = $opt_manual_dir // 'manuals';
$config{MODULE_DIR} = $opt_module_dir // 'modules';
+ $config{RUNTIME_DIR} = $opt_runtime_dir // $config{DATA_DIR};
$config{SCRIPT_DIR} = $opt_script_dir // $config{BASE_DIR};
} elsif (defined $opt_system) {
$config{BASE_DIR} = $opt_prefix // '/var/lib/inspircd';
$config{LOG_DIR} = $opt_log_dir // '/var/log/inspircd';
$config{MANUAL_DIR} = $opt_manual_dir // '/usr/share/man/man1';
$config{MODULE_DIR} = $opt_module_dir // '/usr/lib/inspircd';
- $config{SCRIPT_DIR} = $opt_script_dir // '/usr/share/inspircd'
+ $config{RUNTIME_DIR} = $opt_runtime_dir // '/var/run';
+ $config{SCRIPT_DIR} = $opt_script_dir // '/usr/share/inspircd';
} else {
$config{BASE_DIR} = rel2abs $opt_prefix // $config{BASE_DIR} // catdir $RealDir, 'run';
$config{BINARY_DIR} = $opt_binary_dir // $config{BINARY_DIR} // catdir $config{BASE_DIR}, 'bin';
$config{LOG_DIR} = $opt_log_dir // $config{LOG_DIR} // catdir $config{BASE_DIR}, 'logs';
$config{MANUAL_DIR} = $opt_manual_dir // $config{MANUAL_DIR} // catdir $config{BASE_DIR}, 'manuals';
$config{MODULE_DIR} = $opt_module_dir // $config{MODULE_DIR} // catdir $config{BASE_DIR}, 'modules';
+ $config{RUNTIME_DIR} = $opt_runtime_dir // $config{RUNTIME_DIR} // $config{DATA_DIR};
$config{SCRIPT_DIR} = $opt_script_dir // $config{SCRIPT_DIR} // $config{BASE_DIR};
}
$config{MODULE_DIR} = prompt_dir $interactive, 'In what directory are modules to be placed?', $config{MODULE_DIR};
$config{SCRIPT_DIR} = prompt_dir $interactive, 'In what directory are scripts to be placed?', $config{SCRIPT_DIR};
$config{EXAMPLE_DIR} = $config{CONFIG_DIR} . '/examples';
+ $config{RUNTIME_DIR} = $config{DATA_DIR};
}
# Configure module settings.
EOQ
if (prompt_bool $interactive, $question, 0) {
foreach my $extra (<$RealDir/src/modules/extra/m_*.cpp>) {
- my $module_name = basename $extra, '.cpp';
- if (prompt_bool $interactive, "Would you like to enable $module_name?", 0) {
+ my $module_name = module_shrink $extra;
+ if (prompt_bool $interactive, "Would you like to enable the <|BOLD $module_name|> module?", 0) {
enable_extras $module_name;
}
}
EOM
for my $file (<$RealDir/src/modules/m_*>) {
- my $module = basename $file, '.cpp';
- say " * $module" if -l $file;
+ say " * ${\module_shrink $file}" if -l $file;
}
my @makeargs;
<|GREEN Log:|> $config{LOG_DIR}
<|GREEN Manual:|> $config{MANUAL_DIR}
<|GREEN Module:|> $config{MODULE_DIR}
+ <|GREEN Runtime:|> $config{RUNTIME_DIR}
<|GREEN Script:|> $config{SCRIPT_DIR}
<|GREEN Execution Group:|> $config{GROUP} ($config{GID})
my @sources = map { File::Spec->case_tolerant() ? lc($_) : $_ } (readdir($dd));
closedir $dd;
undef $dd;
- my $maxlen = (sort { $b <=> $a } (map {length($_)} (@extras)))[0];
+ my $maxlen = (sort { $b <=> $a } (map { length module_shrink $_ } (@extras)))[0];
my %extras = ();
EXTRA: for my $extra (@extras) {
next if (File::Spec->curdir() eq $extra || File::Spec->updir() eq $extra);
for my $extra (sort {$a cmp $b} keys(%extras)) {
my $text = $extras{$extra};
if ($text =~ m/needed by/ && $text !~ m/enabled/) {
- printf "\e[31;1;5m%-*s = %s%s\e[0m\n", $maxlen, $extra, $text, ($text =~ m/needed by/ ? ")" : "");
+ printf "\e[31;1;5m%-*s = %s%s\e[0m\n", $maxlen, module_shrink($extra), $text, ($text =~ m/needed by/ ? ")" : "");
} else {
- printf "%-*s = %s%s\n", $maxlen, $extra, $text, ($text =~ m/needed by/ ? "\e[0m)" : "");
+ printf "%-*s = %s%s\n", $maxlen, module_shrink($extra), $text, ($text =~ m/needed by/ ? "\e[0m)" : "");
}
}
return keys(%extras) if wantarray; # Can be used by manage_extras.
my $extradir = catdir $moduledir, 'extra';
for my $extra (@_) {
- my $shortname = $extra =~ s/(?:^m_|\.cpp$)//gr;
- my $extrafile = "m_$shortname.cpp";
+ my $shortname = module_shrink $extra;
+ my $extrafile = module_expand $extra;
my $extrapath = catfile $extradir, $extrafile;
if (!-f $extrapath) {
my $extradir = catdir $moduledir, 'extra';
for my $extra (@_) {
- my $shortname = $extra =~ s/(?:^m_|\.cpp$)//gr;
- my $extrafile = "m_$shortname.cpp";
+ my $shortname = module_shrink $extra;
+ my $extrafile = module_expand $extra;
my $modulepath = catfile $moduledir, $extrafile;
my $extrapath = catfile $extradir, $extrafile;