Better generation of recipes page.

This commit is contained in:
Richard Jones
2009-04-25 18:28:24 +01:00
parent a057a058e7
commit b6d5c9e646
12 changed files with 82 additions and 36 deletions

View File

@@ -50,7 +50,8 @@ EXTRA_DIST = \
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
@@ -142,32 +143,9 @@ html/guestfish.1.html: guestfish.pod guestfish-actions.pod
--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,&,\&amp;,g' -e 's,<,\&lt;,g' -e 's,>,\&gt;,g' < $$f >> $@-t; \
echo '</pre>' >> $@-t; \
if [ -r recipes/$$b.example ]; then \
echo '<h3>Example output</h3>' >> $@-t; \
echo '<pre>' >> $@-t; \
sed -e 's,&,\&amp;,g' -e 's,<,\&lt;,g' -e 's,>,\&gt;,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

73
make-recipes.sh Executable file
View File

@@ -0,0 +1,73 @@
#!/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,&,\&amp;,g' -e 's,<,\&lt;,g' -e 's,>,\&gt;,g' < $f
echo '</pre>'
if [ -r recipes/$b.example ]; then
echo '<h3>Example output</h3>'
echo '<pre>'
sed -e 's,&,\&amp;,g' -e 's,<,\&lt;,g' -e 's,>,\&gt;,g' < recipes/$b.example
echo '</pre>'
fi
done
echo '</body></html>'

View File

@@ -1,5 +1,3 @@
<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

1
recipes/clone.title Normal file
View File

@@ -0,0 +1 @@
Clone and edit a virtual machine

View File

@@ -1,5 +1,3 @@
<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>.

1
recipes/editgrub.title Normal file
View File

@@ -0,0 +1 @@
Fix an unbootable VM by editing /boot/grub/grub.conf

View File

@@ -1,5 +1,3 @@
<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>

1
recipes/export2tar.title Normal file
View File

@@ -0,0 +1 @@
Export the /home directory from a virtual machine into a tarball

View File

@@ -1,5 +1,3 @@
<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

View File

@@ -0,0 +1 @@
Display the devices, partitions, LVs, VGs and PVs in a guest image

View File

@@ -1,5 +1,3 @@
<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

1
recipes/tar2vm.title Normal file
View File

@@ -0,0 +1 @@
Make a virtual machine out of a tarball