aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2015-01-10 20:14:14 +0200
committerSergey Poznyakoff <gray@gnu.org>2015-01-10 20:14:14 +0200
commit1c22a86e073d57c4b35ac5b7ffea07aa541141c4 (patch)
treec90f3fc758b5dfc2f8e8fd64f2ef0a87343b3e50 /src
parent2b99881a880d101ae32a94b3d1e0a792224cb74c (diff)
downloadellinika-1c22a86e073d57c4b35ac5b7ffea07aa541141c4.tar.gz
ellinika-1c22a86e073d57c4b35ac5b7ffea07aa541141c4.tar.bz2
Make it possible to use apache rewrite rules to create nice cgi urls
Example: configure with options: --without-script-suffix --without-script-dir, and add the following to the Apache virtual host configuration: RewriteEngine on RewriteRule ^/dict(.*) /cgi-bin/dict.cgi$1 [H=cgi-script] RewriteRule ^/nea(.*) /cgi-bin/nea.cgi$1 [H=cgi-script] RewriteRule ^/conj(.*) /cgi-bin/conj.cgi$1 [H=cgi-script] All cgi's will then be referred to directly, as in: http://ellinika/dict?lang=pl. * configure.ac (REAL_SCRIPT_SUFFIX): New subst var New options --with-script-suffix, --with-script-dir * src/cgi-bin/.gitignore: Remove cgi * src/cgi-bin/Makefile.am: Rename installed scm's in place * src/ellinika/cgi.scm4 (cgi-program-name): Suffix can be empty. * xml/lingua.conf.in: =SCRIPT_SUFFIX= always begins with dot
Diffstat (limited to 'src')
-rw-r--r--src/cgi-bin/.gitignore2
-rw-r--r--src/cgi-bin/Makefile.am27
-rw-r--r--src/ellinika/cgi.scm42
3 files changed, 17 insertions, 14 deletions
diff --git a/src/cgi-bin/.gitignore b/src/cgi-bin/.gitignore
index a2d76a3..21128b6 100644
--- a/src/cgi-bin/.gitignore
+++ b/src/cgi-bin/.gitignore
@@ -1,2 +1 @@
-dict.cgi
dict.m4
@@ -4,3 +3,2 @@ dict.scm
dict.sed
-nea.cgi
nea.scm
diff --git a/src/cgi-bin/Makefile.am b/src/cgi-bin/Makefile.am
index f085e57..aca9137 100644
--- a/src/cgi-bin/Makefile.am
+++ b/src/cgi-bin/Makefile.am
@@ -16,6 +16,7 @@
-cgidir=@CGIDIR@
-cgi_SCRIPTS=$(EXTRA_DIST:.scm4=.@SCRIPT_SUFFIX@)
-EXTRA_DIST=dict.scm4 nea.scm4 conj.scm4
-CLEANFILES=dict.m4 dict.scm nea.scm dict.cgi nea.cgi conj.cgi
+cgidir = @CGIDIR@
+CGI_SOURCES = dict.scm4 nea.scm4 conj.scm4
+EXTRA_DIST = $(CGI_SOURCES)
+cgi_SCRIPTS = $(CGI_SOURCES:.scm4=.scm)
+CLEANFILES = dict.m4 $(cgi_SCRIPTS)
@@ -45,3 +46,3 @@ dict.m4: Makefile
-SUFFIXES = .scm4 .scm .cgi
+SUFFIXES = .scm4 .scm
@@ -50,5 +51,2 @@ SUFFIXES = .scm4 .scm .cgi
-.scm.cgi:
- $(AM_V_GEN)cp $< $@
-
dict.scm: dict.scm4 dict.m4
@@ -57,4 +55,11 @@ conj.scm: conj.scm4 dict.m4
-dict.cgi: dict.scm
-nea.cgi: nea.scm
-conj.cgi: conj.scm
+install-data-hook:
+ $(AM_V_GEN)if test @REAL_SCRIPT_SUFFIX@ != .scm; then\
+ here=`pwd`; \
+ cd $(DESTDIR)$(cgidir); \
+ for file in $(cgi_SCRIPTS); do\
+ mv $$file $${file%%.scm}@REAL_SCRIPT_SUFFIX@;\
+ done;\
+ cd $$here;\
+ fi
+
diff --git a/src/ellinika/cgi.scm4 b/src/ellinika/cgi.scm4
index 51f9570..28adea1 100644
--- a/src/ellinika/cgi.scm4
+++ b/src/ellinika/cgi.scm4
@@ -129,3 +129,3 @@ ifelse(IFACE,[CGI],[
(substring cgi-script-name 0 (string-rindex cgi-script-name #\/)) "/"
- prog ".SCRIPT_SUFFIX"))
+ prog ifelse(SCRIPT_SUFFIX,,,"SCRIPT_SUFFIX")))

Return to:

Send suggestions and report system problems to the System administrator.