stabilize path names in html output

Olaf Hering olh at suse.de
Tue May 17 16:52:55 CDT 2005


svnbook-trunk/src/en/TODO lists an action item for someone:

  - we seem to inconsistently assume repositories live either in
    /usr/local/svn/ or /usr/local/repositories/ throughout the book.
    We ought to consistify to /var/svn.

Now, I havent seen someone posting anything to this list, but I want it fixed soon.


There are things like '/path/to/svnserve' and '/usr/local/bin/svnserve' in chapter 6.
Maybe these path names should look like '@@SVN_BINARY_BASE_PATH@@/svnserve', and
'@@SVN_REPOSITORY_BASE_PATH@@' instead of '/path/to/repos'
My question is, where should I place the sed command to replace the placeholder with
the final string? I came up with this patch which appears to work for
me.



Index: svnbook-trunk/src/tools/Makefile.base
===================================================================
--- svnbook-trunk.orig/src/tools/Makefile.base
+++ svnbook-trunk/src/tools/Makefile.base
@@ -9,6 +9,10 @@ XMLLINT = xmllint
 INSTALL_DIR = $(DESTDIR)/usr/share/doc/subversion
 INSTALL = install
 SVNVERSION = svnversion
+#
+SVN_BINARY_BASE_PATH = /usr/bin
+SVN_REPOSITORY_BASE_PATH = /srv/svn/repos
+SVN_HTTP_REPOSITORY_BASE_PATH = /repos
 
 # You should not normally need to edit anything below here.
 SHELL = /bin/sh
@@ -26,6 +30,7 @@ BOOK_FO_TARGET = $(BOOK_DIR)/svn-book.fo
 BOOK_XML_SOURCE = $(BOOK_DIR)/book.xml
 BOOK_VERSION_SOURCE = $(BOOK_DIR)/version.xml
 BOOK_ALL_SOURCE = $(BOOK_DIR)/*.xml
+BOOK_ALL_TMP_SOURCE = $(BOOK_DIR)/tmp-*.xml
 BOOK_IMAGES = $(BOOK_DIR)/images/*.png
 BOOK_INSTALL_DIR = $(INSTALL_DIR)/book
 
@@ -73,8 +78,27 @@ book-version:
 	  mv $(BOOK_VERSION_SOURCE).tmp $(BOOK_VERSION_SOURCE); \
 	fi
 
+$(BOOK_ALL_TMP_SOURCE): $(BOOK_ALL_SOURCE)
+	echo CURDIR $(CURDIR)
+	echo $?
+	set -e ; \
+	for i in $? '' ; do \
+		if test -z "$$i" ; then continue ; fi ; \
+		j="$${i##*/}" ; \
+		echo $$i j $$j ; \
+		if test "$$j" = "book.xml" ; then continue ; fi ; \
+		cat $$i | \
+		sed -e 's.@@SVN_BINARY_BASE_PATH@@.$(SVN_BINARY_BASE_PATH).' | \
+		sed -e 's.@@SVN_REPOSITORY_BASE_PATH@@.$(SVN_REPOSITORY_BASE_PATH).' | \
+		sed -e 's.@@SVN_HTTP_REPOSITORY_BASE_PATH@@.$(SVN_HTTP_REPOSITORY_BASE_PATH).' | \
+		cat > $(BOOK_DIR)/tmp-$$j ; \
+		echo > $$i ; \
+	done
+	touch $@
+
+
 book-html: $(BOOK_HTML_TARGET)
-$(BOOK_HTML_TARGET): $(BOOK_ALL_SOURCE) $(BOOK_VERSION_SOURCE)
+$(BOOK_HTML_TARGET): $(BOOK_ALL_TMP_SOURCE) $(BOOK_VERSION_SOURCE)
 	$(ENSURE_XSL)
 	$(XSLTPROC) $(BOOK_HTML_XSLTPROC_OPTS) --output $(BOOK_HTML_TARGET) \
 	  $(TOOLS_DIR)/html-stylesheet.xsl $(BOOK_XML_SOURCE)
@@ -82,7 +106,7 @@ $(BOOK_HTML_TARGET): $(BOOK_ALL_SOURCE) 
 # The trailing slash on the xsltproc --output option is essential to
 # output pages into the directory
 book-html-chunk: $(BOOK_HTML_CHUNK_TARGET)
-$(BOOK_HTML_CHUNK_TARGET): $(BOOK_ALL_SOURCE) $(BOOK_VERSION_SOURCE) \
+$(BOOK_HTML_CHUNK_TARGET): $(BOOK_ALL_TMP_SOURCE) $(BOOK_VERSION_SOURCE) \
                            $(BOOK_DIR)/styles.css $(BOOK_IMAGES)
 	mkdir -p $(BOOK_HTML_CHUNK_DIR)
 	mkdir -p $(BOOK_HTML_CHUNK_DIR)/images
@@ -93,7 +117,7 @@ $(BOOK_HTML_CHUNK_TARGET): $(BOOK_ALL_SO
 	cp $(BOOK_DIR)/styles.css $(BOOK_HTML_CHUNK_DIR)
 	cp $(BOOK_IMAGES) $(BOOK_HTML_CHUNK_DIR)/images
 
-$(BOOK_FO_TARGET): $(BOOK_ALL_SOURCE) $(BOOK_VERSION_SOURCE) $(BOOK_IMAGES)
+$(BOOK_FO_TARGET): $(BOOK_ALL_TMP_SOURCE) $(BOOK_VERSION_SOURCE) $(BOOK_IMAGES)
 	$(ENSURE_XSL)
 	$(XSLTPROC) $(BOOK_FO_XSLTPROC_OPTS) --output $(BOOK_FO_TARGET) \
 	  $(TOOLS_DIR)/fo-stylesheet.xsl $(BOOK_XML_SOURCE)
Index: svnbook-trunk/src/en/book/ch06.xml
===================================================================
--- svnbook-trunk.orig/src/en/book/ch06.xml
+++ svnbook-trunk/src/en/book/ch06.xml
@@ -426,7 +426,7 @@ svn           3690/udp   # Subversion
         <filename>/etc/inetd.conf</filename>:</para>
 
 <screen>
-svn stream tcp nowait svnowner /usr/local/bin/svnserve svnserve -i
+svn stream tcp nowait svnowner @@SVN_BINARY_BASE_PATH@@/svnserve svnserve -i
 </screen>
 
       <para>Make sure <quote>svnowner</quote> is a user which has
@@ -503,9 +503,9 @@ $               # svnserve is now runnin
         network.  A client needs to specify an
         <emphasis>absolute</emphasis> path in the repository URL.  For
         example, if a repository is located at
-        <filename>/usr/local/repositories/project1</filename>, then a
+        <filename>@@SVN_REPOSITORY_BASE_PATH@@/project1</filename>, then a
         client would reach it via <systemitem
-        class="url">svn://host.example.com/usr/local/repositories/project1
+        class="url">svn://host.example.com@@SVN_HTTP_REPOSITORY_BASE_PATH@@/project1
         </systemitem>.  To increase security, you can pass the
         <option>-r</option> option to <command>svnserve</command>,
         which restricts it to exporting only repositories below that
Index: svnbook-trunk/src/en/book/book.xml
===================================================================
--- svnbook-trunk.orig/src/en/book/book.xml
+++ svnbook-trunk/src/en/book/book.xml
@@ -3,22 +3,22 @@
 [
 <!ENTITY % vers   SYSTEM "version.xml">
 %vers;
-<!ENTITY foreword SYSTEM "foreword.xml">
-<!ENTITY ch00     SYSTEM "ch00.xml">
-<!ENTITY ch01     SYSTEM "ch01.xml">
-<!ENTITY ch02     SYSTEM "ch02.xml">
-<!ENTITY ch03     SYSTEM "ch03.xml">
-<!ENTITY ch04     SYSTEM "ch04.xml">
-<!ENTITY ch05     SYSTEM "ch05.xml">
-<!ENTITY ch06     SYSTEM "ch06.xml">
-<!ENTITY ch07     SYSTEM "ch07.xml">
-<!ENTITY ch08     SYSTEM "ch08.xml">
-<!ENTITY ch09     SYSTEM "ch09.xml">
-<!ENTITY appa     SYSTEM "appa.xml">
-<!ENTITY appb     SYSTEM "appb.xml">
-<!ENTITY appc     SYSTEM "appc.xml">
-<!ENTITY appd     SYSTEM "appd.xml">
-<!ENTITY license  SYSTEM "copyright.xml">
+<!ENTITY foreword SYSTEM "tmp-foreword.xml">
+<!ENTITY ch00     SYSTEM "tmp-ch00.xml">
+<!ENTITY ch01     SYSTEM "tmp-ch01.xml">
+<!ENTITY ch02     SYSTEM "tmp-ch02.xml">
+<!ENTITY ch03     SYSTEM "tmp-ch03.xml">
+<!ENTITY ch04     SYSTEM "tmp-ch04.xml">
+<!ENTITY ch05     SYSTEM "tmp-ch05.xml">
+<!ENTITY ch06     SYSTEM "tmp-ch06.xml">
+<!ENTITY ch07     SYSTEM "tmp-ch07.xml">
+<!ENTITY ch08     SYSTEM "tmp-ch08.xml">
+<!ENTITY ch09     SYSTEM "tmp-ch09.xml">
+<!ENTITY appa     SYSTEM "tmp-appa.xml">
+<!ENTITY appb     SYSTEM "tmp-appb.xml">
+<!ENTITY appc     SYSTEM "tmp-appc.xml">
+<!ENTITY appd     SYSTEM "tmp-appd.xml">
+<!ENTITY license  SYSTEM "tmp-copyright.xml">
 ]>
 
 <book id="svn">



More information about the svnbook-dev mailing list