Browse Source

Add option handling, bump version number to 0.1.5, add man-page

master v0.1.5
Stefan Bühler 12 years ago
parent
commit
adaf8af1ff
  1. 10
      CMakeLists.txt
  2. 5
      Makefile.am
  3. 2
      configure.ac
  4. 33
      fcgi-cgi.1
  5. 21
      fcgi-cgi.c

10
CMakeLists.txt

@ -22,7 +22,7 @@ MACRO(ADD_TARGET_PROPERTIES _target _name _properties)
ENDMACRO(ADD_TARGET_PROPERTIES)
PROJECT(fcgi-cgi)
SET(PACKAGE_VERSION 0.1.0)
SET(PACKAGE_VERSION 0.1.5)
IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
@ -71,3 +71,11 @@ ADD_TARGET_PROPERTIES(fcgi-cgi LINK_FLAGS "${GLIB2_LDFLAGS}")
ADD_TARGET_PROPERTIES(fcgi-cgi COMPILE_FLAGS "${GLIB2_CFLAGS_OTHER}")
INSTALL(TARGETS fcgi-cgi DESTINATION bin)
# man page
SET(CMAKE_MAN_DIR "share/man" CACHE STRING
"Install location for man pages (relative to prefix).")
MARK_AS_ADVANCED(CMAKE_MAN_DIR)
INSTALL(FILES fcgi-cgi.1 DESTINATION ${CMAKE_MAN_DIR}/man1)

5
Makefile.am

@ -1,6 +1,5 @@
# fcgi-cgi.1
EXTRA_DIST=autogen.sh CMakeLists.txt config.h.cmake
#man1_MANS=fcgi-cgi.1
EXTRA_DIST=autogen.sh CMakeLists.txt config.h.cmake fcgi-cgi.1
man1_MANS=fcgi-cgi.1
AM_CFLAGS=$(GLIB_CFLAGS)
fcgi_cgi_LDADD=$(GLIB_LIBS)

2
configure.ac

@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
AC_INIT([fcgi-cgi], [0.1.0], [lighttpd@stbuehler.de])
AC_INIT([fcgi-cgi], [0.1.5], [lighttpd@stbuehler.de])
AC_CONFIG_SRCDIR([fcgi-cgi.c])
AC_CONFIG_HEADERS([config.h])

33
fcgi-cgi.1

@ -0,0 +1,33 @@
.TH fcgi-cgi 1 "May 7, 2010"
.
.SH NAME
.
fcgi-cgi \- a FastCGI application to run cgi applications
.
.SH OPTIONS
.
.TP 8
.B \-c <number>
Maximum number of connections (default 16)
.TP 8
.B \-v
Shows version information and exits
.
.SH DESCRIPTION
fcgi-cgi is a FastCGI application to run normal cgi applications. It doesn't
make CGI applications faster, but it allows you to run them on a different
host and with different user permissions (without the need for suexec).
.P
lighttpd2 won't have a mod_cgi, so you need this FastCGI wrapper to be
able to execute standard cgi applications like mailman and cgit.
.P
nginx recommends something similar, they implemented the wrapper in Perl:
http://wiki.nginx.org/NginxSimpleCGI
.P
For running you probably want spawn-fcgi (http://redmine.lighttpd.net/projects/spawn-fcgi)
.SH EXAMPLE
Example usage:
spawn-fcgi -n -s /tmp/fastcgi-cgi.sock -u www-default -U www-data -- /usr/bin/fcgi-cgi
.SH AUTHOR
fcgi-cgi was written by Stefan Bühler.

21
fcgi-cgi.c

@ -23,6 +23,8 @@
#define __STR(x) #x
#define ERROR(...) g_printerr("fcgi-cgi.c:" G_STRINGIFY(__LINE__) ": " __VA_ARGS__)
#define PACKAGE_DESC (PACKAGE_NAME " v" PACKAGE_VERSION " - forks and watches multiple instances of a program in the same environment")
struct fcgi_cgi_server;
typedef struct fcgi_cgi_server fcgi_cgi_server;
@ -557,10 +559,25 @@ static const GOptionEntry entries[] = {
};
int main(int argc, char **argv) {
GOptionContext *context;
GError *error = NULL;
struct ev_loop *loop;
fcgi_cgi_server* srv;
UNUSED(argc);
UNUSED(argv);
context = g_option_context_new("<application> [app arguments]");
g_option_context_add_main_entries(context, entries, NULL);
g_option_context_set_summary(context, PACKAGE_DESC);
if (!g_option_context_parse (context, &argc, &argv, &error)) {
g_printerr("Option parsing failed: %s\n", error->message);
return -1;
}
if (opts.show_version) {
g_printerr(PACKAGE_DESC);
g_printerr("\nBuild-Date: " __DATE__ " " __TIME__ "\n");
return 0;
}
loop = ev_default_loop(0);
srv = fcgi_cgi_server_create(loop, 0, opts.maxconns);

Loading…
Cancel
Save