-# always assume anything to do with files is from project root
+# always assume anything to do with files or directories is ran at project root
+
+# If you're using lighttpd, set this to 1
+# This disables SOCKET_FILE and lets the socket handling be externally managed
+use constant BARE_REQUEST => 0;
+
+use constant IMMORTAL => 1; # will continue handling request after death/error
use constant LOG_FILE => '/tmp/gorillanest.log';
-use constant SOCKET_FILE => '/tmp/gorillanest.socket';
use constant DB_FILE => 'gorillanest.sqlite3'; # sqlite3
+use constant SOCKET_FILE => '/tmp/gorillanest.socket';
+use constant SOCKET_MAX_CONNECTIONS => 100;
+
use constant TEMPLATE_ROOT => 'template'; # template directory
use constant GIT_ROOT => 'git'; # git directory (~user/repo)
-# If you're using lighttpd, set this to 1
-# This disables SOCKET_FILE and lets the socket handling be externally managed
-use constant BARE_REQUEST => 0;
-
-use constant SOCKET_MAX_CONNECTIONS => 100;
1;
use lib '.';
BEGIN { require 'gorillanest.pl.cgi'; }
-try {
- open STDERR, '>', LOG_FILE or die LOG_FILE . ": $!";
- my $request = FCGI::Request( \*STDIN, \*STDOUT, \*STDERR, \%ENV, BARE_REQUEST ? 0 : FCGI::OpenSocket(SOCKET_FILE, SOCKET_MAX_CONNECTIONS));
- while($request->Accept() >= 0) {
- master();
+while (1) {
+ try {
+ open STDERR, '>', LOG_FILE or die LOG_FILE . ": $!";
+ my $request = FCGI::Request( \*STDIN, \*STDOUT, \*STDERR, \%ENV, BARE_REQUEST ? 0 : FCGI::OpenSocket(SOCKET_FILE, SOCKET_MAX_CONNECTIONS));
+ while($request->Accept() >= 0) {
+ master();
+ }
+ } catch ($error) {
+ info("Crashed: $error");
}
-} catch ($error) {
- info("Crashed: $error");
+ exit 1 unless (IMMORTAL);
}