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