recipes/*.html \
recipes/*.sh \
recipes/*.example \
- html/recipes.css
+ html/recipes.css \
+ make-recipes.sh
# Build the root filesystem.
# Currently this is arch-dependent, so it seems like putting it in
--outfile $@
# Recipes web page.
-html/recipes.html: $(wildcard recipes/*.sh) $(wildcard recipes/*.html) $(wildcard recipes/*.example) Makefile
+html/recipes.html: $(wildcard recipes/*.sh) $(wildcard recipes/*.html) $(wildcard recipes/*.example) Makefile make-recipes.sh
rm -f $@ $@-t
- echo '<html><head><title>guestfish recipes</title>' >> $@-t; \
- echo '<link rel="stylesheet" href="recipes.css" type="text/css" title="Standard"/>' >> $@-t; \
- echo '</head><body>' >> $@-t; \
- echo '<h1>guestfish recipes</h1>' >> $@-t; \
- echo '<p>You can also find these in the <code>recipes/</code> subdirectory of the source.</p>' >> $@-t; \
- for f in recipes/*.sh; do \
- b=`basename $$f .sh`; \
- echo -n '<a name="'$$b'"></a>' >> $@-t; \
- if [ -r recipes/$$b.html ]; then \
- cat recipes/$$b.html >> $@-t; \
- else \
- echo '<h2>$$b</h2>' >> $@-t; \
- fi; \
- echo '<pre class="example">' >> $@-t; \
- sed -e 's,&,\&,g' -e 's,<,\<,g' -e 's,>,\>,g' < $$f >> $@-t; \
- echo '</pre>' >> $@-t; \
- if [ -r recipes/$$b.example ]; then \
- echo '<h3>Example output</h3>' >> $@-t; \
- echo '<pre>' >> $@-t; \
- sed -e 's,&,\&,g' -e 's,<,\<,g' -e 's,>,\>,g' < recipes/$$b.example >> $@-t; \
- echo '</pre>' >> $@-t; \
- fi; \
- done; \
- echo '</body></html>' >> $@-t; \
+ sh make-recipes.sh recipes/*.sh > $@-t
mv $@-t $@
website: html/guestfs.3.html html/guestfish.1.html html/recipes.html
--- /dev/null
+#!/bin/sh -
+# libguestfs
+# Copyright (C) 2009 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+cat <<EOF
+<html>
+ <head>
+ <title>guestfish recipes</title>
+ <link rel="stylesheet" href="recipes.css" type="text/css" title="Standard"/>
+ </head>
+ <body>
+ <h1>guestfish recipes</h1>
+ <p>You can also find these in the
+ <a href="http://git.et.redhat.com/?p=libguestfs.git;a=tree;f=recipes;hb=HEAD"><code>recipes/</code>
+ subdirectory</a> of the source.
+
+ <h2>Table of recipes</h2>
+ <ul>
+EOF
+
+for f in recipes/*.sh; do
+ b=`basename $f .sh`
+ echo -n ' <li> <a href="#'$b'">'$b.sh
+ if [ -r recipes/$b.title ]; then
+ echo -n ': '
+ cat recipes/$b.title
+ fi
+ echo '</a> </li>'
+done
+echo ' </ul>'
+echo
+echo
+
+for f in recipes/*.sh; do
+ b=`basename $f .sh`
+ echo -n '<a name="'$b'"></a>'
+ echo -n '<h2>'$b'.sh'
+ if [ -r recipes/$b.title ]; then
+ echo -n ': '
+ cat recipes/$b.title
+ fi
+ echo -n '<small style="font-size: 8pt; margin-left: 2em;"><a href="#'$b'">permalink</a></small>'
+ echo '</h2>'
+ if [ -r recipes/$b.html ]; then
+ cat recipes/$b.html
+ fi
+ echo '<h3>'$b'.sh</h3>'
+ echo '<pre class="example">'
+ sed -e 's,&,\&,g' -e 's,<,\<,g' -e 's,>,\>,g' < $f
+ echo '</pre>'
+ if [ -r recipes/$b.example ]; then
+ echo '<h3>Example output</h3>'
+ echo '<pre>'
+ sed -e 's,&,\&,g' -e 's,<,\<,g' -e 's,>,\>,g' < recipes/$b.example
+ echo '</pre>'
+ fi
+done
+
+echo '</body></html>'
-<h2>Clone and edit a virtual machine</h2>
-
<p>
This script shows how you might have a library of premade
virtual machines ready for cloning, but as a final step you
--- /dev/null
+Clone and edit a virtual machine
\ No newline at end of file
-<h2>Fix an unbootable VM by editing /boot/grub/grub.conf</h2>
-
<p>
If you messed up your VM and made it unbootable, it's
often useful to be able to go in and edit <code>/boot/grub/grub.conf</code>.
--- /dev/null
+Fix an unbootable VM by editing /boot/grub/grub.conf
\ No newline at end of file
-<h2>Export the /home directory from a virtual machine into a tarball</h2>
-
<p>
This script lets you export any directory you like from a virtual
machine as a tarball. For example, to export <code>/home</code>
--- /dev/null
+Export the /home directory from a virtual machine into a tarball
\ No newline at end of file
-<h2>Display the devices, partitions, LVs, VGs and PVs in a guest image</h2>
-
<p>
This very simple script shows how you can display an overview
of what devices, partitions and LVM data are found in a
--- /dev/null
+Display the devices, partitions, LVs, VGs and PVs in a guest image
\ No newline at end of file
-<h2>Make a virtual machine out of a tarball</h2>
-
<p>
This script shows how you might generate a whole virtual
machine, or a disk image for a virtual machine, starting
--- /dev/null
+Make a virtual machine out of a tarball
\ No newline at end of file