summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure6
-rw-r--r--make/configure.pm3
-rw-r--r--make/template/inspircd5
-rw-r--r--make/template/inspircd.service6
-rw-r--r--make/template/main.mk18
5 files changed, 25 insertions, 13 deletions
diff --git a/configure b/configure
index ca2e2f19b..c1052dff9 100755
--- a/configure
+++ b/configure
@@ -59,6 +59,7 @@ my ($opt_binary_dir,
$opt_manual_dir,
$opt_module_dir,
$opt_prefix,
+ $opt_script_dir,
$opt_socketengine,
$opt_system,
$opt_uid);
@@ -88,6 +89,7 @@ GetOptions(
'manual-dir=s' => \$opt_manual_dir,
'module-dir=s' => \$opt_module_dir,
'prefix=s' => \$opt_prefix,
+ 'script-dir=s' => \$opt_script_dir,
'socketengine=s' => \$opt_socketengine,
'system' => \$opt_system,
'uid=s' => \$opt_uid,
@@ -122,6 +124,7 @@ our $interactive = !(
defined $opt_manual_dir ||
defined $opt_module_dir ||
defined $opt_prefix ||
+ defined $opt_script_dir ||
defined $opt_socketengine ||
defined $opt_system ||
defined $opt_uid
@@ -184,6 +187,7 @@ if (defined $opt_system) {
$config{LOG_DIR} = $opt_module_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'
} else {
$config{BASE_DIR} = $opt_prefix // $config{BASE_DIR} // rel2abs 'run';
$config{BINARY_DIR} = $opt_binary_dir // $config{BINARY_DIR} // rel2abs $config{BASE_DIR} . '/bin';
@@ -192,6 +196,7 @@ if (defined $opt_system) {
$config{LOG_DIR} = $opt_log_dir // $config{LOG_DIR} // rel2abs $config{BASE_DIR} . '/logs';
$config{MANUAL_DIR} = $opt_manual_dir // $config{MANUAL_DIR} // rel2abs $config{BASE_DIR} . '/manuals';
$config{MODULE_DIR} = $opt_module_dir // $config{MODULE_DIR} // rel2abs $config{BASE_DIR} . '/modules';
+ $config{SCRIPT_DIR} = $opt_script_dir // $config{SCRIPT_DIR} // $config{BASE_DIR};
}
# Parse --gid=123 or --gid=foo and extract the group id.
@@ -334,6 +339,7 @@ print_format <<"EOM";
<|GREEN Log:|> $config{LOG_DIR}
<|GREEN Manual:|> $config{MANUAL_DIR}
<|GREEN Module:|> $config{MODULE_DIR}
+ <|GREEN Script:|> $config{SCRIPT_DIR}
<|GREEN Execution Group:|> $config{GROUP} ($config{GID})
<|GREEN Execution User:|> $config{USER} ($config{UID})
diff --git a/make/configure.pm b/make/configure.pm
index dfdbf5f75..82d14f564 100644
--- a/make/configure.pm
+++ b/make/configure.pm
@@ -139,6 +139,9 @@ PATH OPTIONS
--module-dir=[dir] The location where the loadable modules are
stored.
[$PWD/run/modules]
+ --script-dir=[dir] The location where the scripts, such as the
+ init scripts, are stored.
+ [$PWD/run]
EXTRA MODULE OPTIONS
diff --git a/make/template/inspircd b/make/template/inspircd
index 949f85cee..2ea0a5492 100644
--- a/make/template/inspircd
+++ b/make/template/inspircd
@@ -48,6 +48,7 @@ use constant {
GENERIC_EXIT_NOT_RUNNING => 7
};
+my $scriptpath = "@SCRIPT_DIR@"
my $basepath = "@BASE_DIR@";
my $confpath = "@CONFIG_DIR@/";
my $binpath = "@BINARY_DIR@";
@@ -203,7 +204,7 @@ sub dev_debug(@)
checkgdb();
# If we are still alive here.. Try starting the IRCd..
- exec 'gdb', "--command=$basepath/.gdbargs", '--args', "$binpath/$executable", qw(--nofork --debug), @_;
+ exec 'gdb', "--command=$scriptpath/.gdbargs", '--args', "$binpath/$executable", qw(--nofork --debug), @_;
die "Failed to start GDB: $!\n";
}
@@ -222,7 +223,7 @@ sub dev_screendebug(@)
# If we are still alive here.. Try starting the IRCd..
print "Starting InspIRCd in `screen`, type `screen -r` when the ircd crashes to view the gdb output and get a backtrace.\n";
print "Once you're inside the screen session press ^C + d to re-detach from the session\n";
- exec qw(screen -m -d gdb), "--command=$basepath/.gdbargs", '-args', "$binpath/$executable", qw(--nofork --debug --nolog), @_;
+ exec qw(screen -m -d gdb), "--command=$scriptpath/.gdbargs", '-args', "$binpath/$executable", qw(--nofork --debug --nolog), @_;
die "Failed to start screen: $!\n";
}
diff --git a/make/template/inspircd.service b/make/template/inspircd.service
index e5f28a674..c05e61822 100644
--- a/make/template/inspircd.service
+++ b/make/template/inspircd.service
@@ -24,9 +24,9 @@ Description=InspIRCd - Internet Relay Chat Daemon
Requires=network.target
[Service]
-ExecReload=@BASE_DIR@/inspircd rehash
-ExecStart=@BASE_DIR@/inspircd start
-ExecStop=@BASE_DIR@/inspircd stop
+ExecReload=@SCRIPT_DIR@/inspircd rehash
+ExecStart=@SCRIPT_DIR@/inspircd start
+ExecStop=@SCRIPT_DIR@/inspircd stop
PIDFile=@DATA_DIR@/inspircd.pid
Restart=on-failure
Type=forking
diff --git a/make/template/main.mk b/make/template/main.mk
index 49c77da05..ff464a228 100644
--- a/make/template/main.mk
+++ b/make/template/main.mk
@@ -45,6 +45,7 @@ MODPATH = "$(DESTDIR)@MODULE_DIR@"
LOGPATH = "$(DESTDIR)@LOG_DIR@"
DATPATH = "$(DESTDIR)@DATA_DIR@"
BINPATH = "$(DESTDIR)@BINARY_DIR@"
+SCRPATH = "$(DESTDIR)@SCRIPT_DIR@"
INSTALL = install
INSTUID = @UID@
INSTMODE_DIR = 0750
@@ -224,17 +225,18 @@ install: target
@-$(INSTALL) -d -m $(INSTMODE_DIR) $(CONPATH)/examples/services
@-$(INSTALL) -d -m $(INSTMODE_DIR) $(MANPATH)
@-$(INSTALL) -d -m $(INSTMODE_DIR) $(MODPATH)
+ @-$(INSTALL) -d -m $(INSTMODE_DIR) $(SCRPATH)
[ "$(BUILDPATH)/bin/" -ef $(BINPATH) ] || $(INSTALL) -m $(INSTMODE_BIN) "$(BUILDPATH)/bin/inspircd" $(BINPATH)
ifndef INSPIRCD_STATIC
[ "$(BUILDPATH)/modules/" -ef $(MODPATH) ] || $(INSTALL) -m $(INSTMODE_LIB) "$(BUILDPATH)/modules/"*.so $(MODPATH)
endif
- -$(INSTALL) -m $(INSTMODE_BIN) @CONFIGURE_DIRECTORY@/inspircd $(BASE) 2>/dev/null
- -$(INSTALL) -m $(INSTMODE_LIB) .gdbargs $(BASE)/.gdbargs 2>/dev/null
+ -$(INSTALL) -m $(INSTMODE_BIN) @CONFIGURE_DIRECTORY@/inspircd $(SCRPATH) 2>/dev/null
+ -$(INSTALL) -m $(INSTMODE_LIB) .gdbargs $(SCRPATH)/.gdbargs 2>/dev/null
ifeq ($(SYSTEM), darwin)
- -$(INSTALL) -m $(INSTMODE_BIN) @CONFIGURE_DIRECTORY@/org.inspircd.plist $(BASE) 2>/dev/null
+ -$(INSTALL) -m $(INSTMODE_BIN) @CONFIGURE_DIRECTORY@/org.inspircd.plist $(SCRPATH) 2>/dev/null
endif
ifeq ($(SYSTEM), linux)
- -$(INSTALL) -m $(INSTMODE_LIB) @CONFIGURE_DIRECTORY@/inspircd.service $(BASE) 2>/dev/null
+ -$(INSTALL) -m $(INSTMODE_LIB) @CONFIGURE_DIRECTORY@/inspircd.service $(SCRPATH) 2>/dev/null
endif
-$(INSTALL) -m $(INSTMODE_LIB) @CONFIGURE_DIRECTORY@/inspircd.1 $(MANPATH) 2>/dev/null
-$(INSTALL) -m $(INSTMODE_LIB) @CONFIGURE_DIRECTORY@/inspircd-genssl.1 $(MANPATH) 2>/dev/null
@@ -253,7 +255,7 @@ endif
@echo ' Binaries:' $(BINPATH)
@echo ' Modules:' $(MODPATH)
@echo ' Data:' $(DATPATH)
- @echo 'To start the ircd, run:' $(BASE)/inspircd start
+ @echo 'To start the ircd, run:' $(SCRPATH)/inspircd start
@echo 'Remember to create your config file:' $(CONPATH)/inspircd.conf
@echo 'Examples are available at:' $(CONPATH)/examples/
@@ -275,9 +277,9 @@ deinstall:
-rm -f $(MANPATH)/inspircd-genssl.1
-rm -f $(MODPATH)/m_*.so
-rm -f $(MODPATH)/core_*.so
- -rm -f $(BASE)/.gdbargs
- -rm -f $(BASE)/inspircd.service
- -rm -f $(BASE)/org.inspircd.plist
+ -rm -f $(SCRPATH)/.gdbargs
+ -rm -f $(SCRPATH)/inspircd.service
+ -rm -f $(SCRPATH)/org.inspircd.plist
configureclean:
rm -f .gdbargs