summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile42
-rw-r--r--download.htin62
-rw-r--r--examples.htin1
-rw-r--r--graphics/bwd.pngbin0 -> 180 bytes
-rw-r--r--graphics/ctx.pngbin0 -> 312 bytes
-rw-r--r--graphics/fwd.pngbin0 -> 180 bytes
-rw-r--r--graphics/idx.pngbin0 -> 164 bytes
-rw-r--r--graphics/left.pngbin0 -> 193 bytes
-rw-r--r--graphics/right.pngbin0 -> 191 bytes
-rw-r--r--graphics/top.pngbin0 -> 149 bytes
-rw-r--r--graphics/up.pngbin0 -> 193 bytes
-rw-r--r--gray.css267
-rw-r--r--inc/footer.html37
-rw-r--r--inc/header.html42
-rw-r--r--index.htin220
-rw-r--r--postproc.awk81
16 files changed, 752 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..bf7f992
--- a/dev/null
+++ b/Makefile
@@ -0,0 +1,42 @@
1# The entire webdoc source tree must be located under the doc subdirectory
2# of the Eclat tree.
3
4include ../Makefile.inc
5VPATH=..
6
7.SUFFIXES: .1 .5 .htin .html
8
9MAN2HTMLFLAGS=-r
10
11.1.html:
12 man2html $(MAN2HTMLFLAGS) $< | \
13 sed 's/<[\/A-Z][A-Z0-9]*/\L&/g;s|<b>\\dq</b>|<b>\\"</b>|g;s|<b>dq</b>|<b>"</b>|g' | \
14 awk -f postproc.awk
15 m4 -P -DACTIVE=documentation inc/header.html a.1 a.3 a.2 a.4 inc/footer.html > $@
16 rm a.[1-4]
17.5.html:
18 man2html $(MAN2HTMLFLAGS) $< | \
19 sed 's/<[\/A-Z][A-Z0-9]*/\L&/g' | \
20 awk -f postproc.awk
21 m4 -P -DACTIVE=documentation inc/header.html a.1 a.3 a.2 a.4 inc/footer.html > $@
22 rm a.[1-4]
23
24.htin.html:
25 m4 -P -DACTIVE=$* inc/header.html $< inc/footer.html > $@
26
27SOURCES=\
28 index.htin\
29 download.htin\
30 examples.htin
31
32HTMLFILES=$(MANPAGES1:.1=.html) $(MANPAGES5:.5=.html) $(SOURCES:.htin=.html)
33
34all: $(HTMLFILES)
35
36archive: all
37 tar zcf eclat-webdoc.tar.gz $(HTMLFILES) *.css graphics
38
39clean:; rm -f *.html a.[1-4] *~
40
41$(HTMLFILES): Makefile postproc.awk inc/header.html inc/footer.html
42
diff --git a/download.htin b/download.htin
new file mode 100644
index 0000000..254a337
--- a/dev/null
+++ b/download.htin
@@ -0,0 +1,62 @@
1<h3>Latest release</h3>
2<p>
3The latest alpha release of <b>Eclat</b> is available from the following
4locations:
5</p>
6<table class="download">
7 <thead>
8 <tr>
9 <td>Archive</td>
10 <td>Size</td>
11 <td>MD5</td>
12 <td>Signature</td>
13 </tr>
14 </thead>
15 <tbody>
16 <tr>
17 <td><a href="ftp://download.gnu.org.ua/pub/alpha/eclat/eclat-0.1.tar.gz">eclat-0.1.tar.gz</a></td>
18 <td>541K</td>
19 <td>7a6a6bd4ab1739604e429e288b13b38e</td>
20 <td><a href="ftp://download.gnu.org.ua/pub/alpha/eclat/eclat-0.1.tar.gz.sig">eclat-0.1.tar.gz.sig</a></td>
21 </tr>
22 <tr>
23 <td><a href="ftp://download.gnu.org.ua/pub/alpha/eclat/eclat-0.1.tar.xz">eclat-0.1.tar.xz</a></td>
24 <td>293K</td>
25 <td>95edca338514d2ae267e6bec0d92164f</td>
26 <td><a href="ftp://download.gnu.org.ua/pub/alpha/eclat/eclat-0.1.tar.xz.sig">eclat-0.1.tar.xz.sig</a></td>
27 </tr>
28 </tbody>
29</table>
30<p>
31You can use the signature file to verify that
32the corresponding file (without the .sig suffix) is intact. First,
33be sure to download both the <i>.sig</i> file and the corresponding tarball.
34Then, run a command like this:
35</p>
36
37<pre>
38 gpg --verify eclat-0.1.tar.gz.sig
39</pre>
40
41<p>
42If that command fails because you don't have the required public key,
43then run this command to import it:
44</p>
45
46<pre>
47 gpg --keyserver keys.gnupg.net --recv-keys 55D0C732
48</pre>
49<p>
50and rerun the <code>gpg --verify</code> command.
51</p>
52
53<h3>Other alphas</h3>
54<p>
55 This and older versions of <b>Eclat</b> can be downloaded from
56<a href="ftp://download.gnu.org.ua/pub/alpha/eclat">its ftp home</a>.
57</p>
58<p>
59 You can keep track of the news and updates at the
60<a href="http://puszcza.gnu.org.ua/projects/eclat">project's
61development page</a>.
62</p>
diff --git a/examples.htin b/examples.htin
new file mode 100644
index 0000000..5f927ea
--- a/dev/null
+++ b/examples.htin
@@ -0,0 +1 @@
FIXME: EXAMPLES PAGE
diff --git a/graphics/bwd.png b/graphics/bwd.png
new file mode 100644
index 0000000..0142be8
--- a/dev/null
+++ b/graphics/bwd.png
Binary files differ
diff --git a/graphics/ctx.png b/graphics/ctx.png
new file mode 100644
index 0000000..4a86f08
--- a/dev/null
+++ b/graphics/ctx.png
Binary files differ
diff --git a/graphics/fwd.png b/graphics/fwd.png
new file mode 100644
index 0000000..2e63647
--- a/dev/null
+++ b/graphics/fwd.png
Binary files differ
diff --git a/graphics/idx.png b/graphics/idx.png
new file mode 100644
index 0000000..fd9356b
--- a/dev/null
+++ b/graphics/idx.png
Binary files differ
diff --git a/graphics/left.png b/graphics/left.png
new file mode 100644
index 0000000..1eeebee
--- a/dev/null
+++ b/graphics/left.png
Binary files differ
diff --git a/graphics/right.png b/graphics/right.png
new file mode 100644
index 0000000..0d1c199
--- a/dev/null
+++ b/graphics/right.png
Binary files differ
diff --git a/graphics/top.png b/graphics/top.png
new file mode 100644
index 0000000..6544b17
--- a/dev/null
+++ b/graphics/top.png
Binary files differ
diff --git a/graphics/up.png b/graphics/up.png
new file mode 100644
index 0000000..65a1897
--- a/dev/null
+++ b/graphics/up.png
Binary files differ
diff --git a/gray.css b/gray.css
new file mode 100644
index 0000000..12526a9
--- a/dev/null
+++ b/gray.css
@@ -0,0 +1,267 @@
1/* Basic settings */
2html, body, table, form {
3 margin: 0em;
4 padding: 0em;
5 height: 100%;
6}
7
8body {
9 font-family: sans-serif;
10 font-size: 120%;
11 color: #333;
12 margin-left: auto;
13 margin-right: auto;
14 max-width: 960px;
15 background-color: silver;
16 padding: 1em;
17}
18
19div {
20 background-color: white;
21}
22
23div#content {
24 border: 1px solid black;
25 min-height: 800px;
26 position: relative;
27}
28
29a {
30 color: blue;
31 text-decoration: none;
32}
33
34a:hover {
35 text-decoration: underline;
36}
37
38img {
39 border: none 0;
40 vertical-align: top;
41}
42
43table {
44 border-collapse: collapse;
45}
46
47.right {
48 text-align: right;
49}
50
51div#header {
52 padding: 1em;
53}
54
55/* Header table */
56table#header {
57 width: 100%;
58 margin-bottom: 1em;
59}
60
61table#header td.logo {
62 width: 140px;
63}
64
65table#header td.main {
66 padding-left: 10px;
67 white-space: nowrap;
68 margin: 0px;
69}
70
71table#header td.main h1 {
72 margin: 0px;
73 font-style: normal;
74 font-weight: normal;
75 font-stretch: normal;
76 font-variant: normal;
77}
78
79table#header td.main h1 a {
80 color: black;
81}
82
83table#header td.sub {
84 color: #777;
85 border-top: solid 1px #ccc;
86 padding-left: 10px;
87 vertical-align: top;
88}
89
90table#header td.sub h2 {
91 font-style: normal;
92 font-weight: normal;
93 font-stretch: normal;
94 font-variant: normal;
95 font-size: 100%;
96 margin: 0px;
97}
98
99/* Main menu (tabs) */
100ul.tabs {
101 list-style-type: none;
102 width: 100%;
103 border-bottom: solid 2px #ccc;
104 border-collapse: collapse;
105 display: table;
106 margin: 0;
107}
108
109ul.tabs li {
110 width: 20%;
111 margin-left: 5%;
112 display: block;
113 float: left;
114 vertical-align: bottom;
115 padding: 0;
116 color: #777;
117 font-size: 100%;
118}
119
120ul.tabs li a {
121 color: #777;
122 font-size: 100%;
123 text-decoration: none;
124 padding: 2px 0.75em;
125}
126
127ul.tabs li a.active {
128 color: #000;
129 background-color: #ccc;
130}
131
132ul.tabs li a:hover {
133 text-decoration: underline;
134}
135
136/* Ditto, table version */
137table.tabs {
138 border-bottom: solid 2px #ccc;
139 border-collapse: collapse;
140 margin-top: 2em;
141 margin-bottom: 0px;
142 width: 100%;
143}
144
145table.tabs td {
146 padding: 0px 1em;
147 vertical-align: bottom;
148}
149
150table.tabs td a {
151 padding: 2px 0.75em;
152 color: #777;
153 font-size: 110%;
154}
155
156table.tabs td a.active {
157 color: #000;
158 background-color: #ccc;
159}
160
161/* Main text */
162div#main {
163 margin-top: 2em;
164 margin-bottom: 2em;
165 margin-left: 5%;
166 margin-right: 5%;
167 padding-bottom: 10em;
168}
169
170/* Copyright section */
171#copyright {
172 border-top: solid 2px #ccc;
173 font-size: 80%;
174 position: absolute;
175 height: 12em;
176 width: 100%;
177 bottom: 0;
178}
179
180/* Download table */
181table.download {
182 border: 1px black solid;
183}
184
185table.download td {
186 border: 1px black solid;
187 padding: 0.3em;
188}
189
190table.download tbody.previous {
191 color: silver;
192}
193
194table.download tbody.previous a {
195 color: lightblue;
196}
197
198/* Example output */
199span.comment {
200 color: red;
201 font-style: italic;
202}
203
204span.var {
205 color: #b8860b;
206}
207
208span.lit {
209 color: #bc8f8f;
210}
211
212span.kw {
213 color: #0000ff;
214}
215
216table.examples td {
217 padding: 0.3em;
218}
219
220/* Generator output */
221div.generator {
222 display: none;
223}
224
225/* Release table */
226tbody.previous {
227 color: silver;
228}
229
230tbody.previous a {
231 color: lightblue;
232}
233
234div.inner {
235 padding: 1em;
236}
237
238table.comparison {
239 margin-left: auto;
240 margin-right: auto;
241 border: 1px solid black;
242}
243
244table.comparison td {
245 border: 1px solid black;
246 padding: 4px;
247}
248
249table.comparison thead td.action {
250 text-align: center;
251}
252
253table.comparison thead td {
254 text-align: center;
255}
256
257table.comparison td.instance-type {
258 text-align: center;
259}
260
261table.comparison td.action {
262 text-align: left;
263}
264
265table.comparison td {
266 text-align: right;
267}
diff --git a/inc/footer.html b/inc/footer.html
new file mode 100644
index 0000000..06f7063
--- a/dev/null
+++ b/inc/footer.html
@@ -0,0 +1,37 @@
1</div>
2<div id="copyright">
3<div class="inner">
4m4_ifelse(`<p>
5 Return to <a href="http://www.gnu.org">GNU's home page</a>.
6</p>
7')
8<p>
9 Return to the <a href="http://puszcza.gnu.org.ua">Puszcza home page</a>.
10</p>
11
12<p>
13 Return to <a href="http://gray.gnu.org.ua">Sergey Poznyakoff home page</a>.
14</p>
15
16<p>
17Please send broken links and other corrections (or suggestions) to
18<a href="mailto:webmaster@gnu.org.ua"><em>webmaster at gnu dot org dot ua</em></a>.
19</p>
20
21<!--
22<p>
23Copyright &copy; 2011 Sergey Poznyakoff
24<br />
25Verbatim copying and distribution of this entire article is
26permitted in any medium, provided this notice is preserved.
27</p>
28-->
29<!--
30Updated: $Date: 2009/10/16 19:40:24 $ $Author: gray $
31-->
32</div>
33</div>
34</div>
35</body>
36</html>
37
diff --git a/inc/header.html b/inc/header.html
new file mode 100644
index 0000000..0f9a277
--- a/dev/null
+++ b/inc/header.html
@@ -0,0 +1,42 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
6<head>
7 <title>Eclat</title>
8 <link rev="made" href="mailto:gray@gnu.org.ua" />
9 <link rel="stylesheet" type="text/css" href="gray.css" />
10 <link rel="icon" type="image/png" href="/graphics/gnu-head-icon.png" />
11</head>
12<body>
13<div id="content">
14<div id="header">
15<table id="header">
16 <tr>
17 <td class="logo" rowspan="3">
18 <img src="/graphics/gnu-head-sm.jpg"
19 alt=" [image of the Head of a GNU] " width="129" height="122" />
20 </td>
21 <td class="main">
22 <h1><a href="/software/eclat">Eclat</a></h1>
23 </td>
24 </tr>
25 <tr>
26 <td class="sub">
27 <h2>EC2 Command Line Administrator Tool</h2>
28 </td>
29 <td class='sub right'>
30 <a href="http://gray.gnu.org.ua">Sergey Poznyakoff</a>
31 </td>
32 </tr>
33</table>
34<ul class='tabs'>
35 <li><a m4_ifelse(ACTIVE,`index',`class="active" ')href="index.html">Main</a></li>
36m4_dnl <li><a m4_ifelse(ACTIVE,`examples',`class="active" ')href="examples.html">Examples</a></li>
37 <li><a m4_ifelse(ACTIVE,`download',`class="active" ')href="download.html">Downloads</a></li>
38 <li><a m4_ifelse(ACTIVE,`documentation',`class="active" ')href="manual.html">Documentation</a></li>
39</ul>
40</div>
41<div id="main">
42
diff --git a/index.htin b/index.htin
new file mode 100644
index 0000000..3355139
--- a/dev/null
+++ b/index.htin
@@ -0,0 +1,220 @@
1<h3>What's Eclat</h3>
2<p>
3<b>Eclat</b> stands for EC2 Command Line Administrator Tool. It allows you to
4manage Amazon EC2 services from the command line, fast and easy. It does
5not require any resource-consuming libraries. It is written in plain C,
6depends only on libraries which are always installed on any decent system,
7and has a tiny memory footprint.
8</p>
9
10<h3>Why use it?</h3>
11<p>Amazon provides similar command line utilities in its
12<code>ec2-api-tools</code> package. So why use Eclat instead? The answer is
13simple: Eclat performs about 100 times faster, uses 10 times less CPU
14and requires 32 times less memory than <code>ec2-api-tools</code>.</p>
15<p>
16The table below summarizes the results of running various <code>describe</code>
17commands on two distinct classes of Amazon instances.
18</p>
19
20<table class="comparison">
21<thead>
22<tr>
23 <td rowspan="2" class="action">Action</td>
24 <td colspan="3">Real time</td>
25 <td colspan="3">CPU usage (%)</td>
26 <td colspan="3">Memory usage</td>
27</tr>
28<tr>
29 <td>EC2</td>
30 <td>Eclat</td>
31 <td>%</td>
32 <td>EC2</td>
33 <td>Eclat</td>
34 <td>%</td>
35 <td>EC2</td>
36 <td>Eclat</td>
37 <td>%</td>
38</tr>
39</thead>
40<tbody>
41<tr>
42 <td colspan="10" class="instance-type">t1.micro</td>
43</tr>
44</tbody>
45<tbody>
46<tr>
47 <td class="action">describe-addresses</td>
48 <td>0:07.73</td>
49 <td>0:00.25</td>
50 <td> 3.2</td>
51 <td> 93</td>
52 <td> 4</td>
53 <td> 4.3</td>
54 <td>541.3</td>
55 <td>19.4</td>
56 <td> 3.6</td>
57</tr>
58<tr>
59 <td class="action">describe-instance-status</td>
60 <td>0:31.78</td>
61 <td>0:00.39</td>
62 <td> 1.2</td>
63 <td> 98</td>
64 <td> 28</td>
65 <td>28.6</td>
66 <td>538.3</td>
67 <td>19.7</td>
68 <td> 3.7</td>
69</tr>
70<tr>
71 <td class="action">describe-instances</td>
72 <td>1:00.99</td>
73 <td>0:00.25</td>
74 <td> 0.4</td>
75 <td> 98</td>
76 <td> 9</td>
77 <td> 9.2</td>
78 <td>420.8</td>
79 <td>21.3</td>
80 <td> 5.1</td>
81</tr>
82<tr>
83 <td class="action">describe-tags</td>
84 <td>0:12.26</td>
85 <td>0:00.45</td>
86 <td> 3.7</td>
87 <td> 98</td>
88 <td> 51</td>
89 <td>52.0</td>
90 <td>541.6</td>
91 <td>20.2</td>
92 <td> 3.7</td>
93</tr>
94<tr>
95 <td class="action">describe-volumes</td>
96 <td>1:01.46</td>
97 <td>0:00.39</td>
98 <td> 0.6</td>
99 <td> 90</td>
100 <td> 5</td>
101 <td> 5.6</td>
102 <td>378.6</td>
103 <td>20.2</td>
104 <td> 5.3</td>
105</tr>
106<tr>
107 <td class="action">Average</td>
108 <td>0:34.84</td>
109 <td>0:00.35</td>
110 <td> 1.0</td>
111 <td> 95</td>
112 <td> 19</td>
113 <td>20.3</td>
114 <td>484.1</td>
115 <td>20.2</td>
116 <td> 4.2</td>
117</tr>
118</tbody>
119<tbody>
120<tr>
121 <td colspan="10" class="instance-type">m1.large</td>
122</tr>
123</tbody>
124<tbody>
125<tr>
126 <td class="action">describe-addresses</td>
127 <td>0:06.87</td>
128 <td>0:00.11</td>
129 <td> 1.6</td>
130 <td>140</td>
131 <td> 14</td>
132 <td>10.0</td>
133 <td>589.9</td>
134 <td>19.2</td>
135 <td> 3.3</td>
136</tr>
137<tr>
138 <td class="action">describe-instance-status</td>
139 <td>0:06.75</td>
140 <td>0:00.12</td>
141 <td> 1.8</td>
142 <td>143</td>
143 <td> 12</td>
144 <td> 8.4</td>
145 <td>611.8</td>
146 <td>19.5</td>
147 <td> 3.2</td>
148</tr>
149<tr>
150 <td class="action">describe-instances</td>
151 <td>0:07.47</td>
152 <td>0:00.11</td>
153 <td> 1.5</td>
154 <td>143</td>
155 <td> 21</td>
156 <td>14.7</td>
157 <td>643.8</td>
158 <td>21.1</td>
159 <td> 3.3</td>
160</tr>
161<tr>
162 <td class="action">describe-tags</td>
163 <td>0:07.82</td>
164 <td>0:00.10</td>
165 <td> 1.3</td>
166 <td>139</td>
167 <td> 19</td>
168 <td>13.7</td>
169 <td>654.7</td>
170 <td>20.1</td>
171 <td> 3.1</td>
172</tr>
173<tr>
174 <td class="action">describe-volumes</td>
175 <td>0:08.26</td>
176 <td>0:00.10</td>
177 <td> 1.2</td>
178 <td>129</td>
179 <td> 18</td>
180 <td>14.0</td>
181 <td>654.0</td>
182 <td>20.1</td>
183 <td> 3.1</td>
184</tr>
185<tr>
186 <td class="action">Average</td>
187 <td>0:07.43</td>
188 <td>0:00.11</td>
189 <td> 1.5</td>
190 <td>138</td>
191 <td> 16</td>
192 <td>12.1</td>
193 <td>630.8</td>
194 <td>20.0</td>
195 <td> 3.2</td>
196</tr>
197</tbody>
198</table>
199<p>The columns <code>EC2</code> and <code>Eclat</code> contain measurements shown by
200<code>ec2-api-tools</code> and Eclat correspondingly. Each <code>%</code> column
201shows the resource usage by Eclat relative to that of <code>ec2-api-tools</code>.</p>
202<h3>Requirements and Build Prerequisites</h3>
203<p>
204There are no special requirements for the system where Eclat is to be run.
205As the above table shows, it feels itself quite comfortably even in
206conditions of extreme scarcity of resources, such as on <code>t1.micro</code>
207instances.
208</p>
209<p>There are only two prerequisites for building the package:
210<a href="http://curl.haxx.se">Curl</a> and
211<a href="http://www.libexpat.org">Expat</a> libraries.</p>
212<h3>ID Mapping</h3>
213One of the unique features of Eclat is <i>ID mapping</i>, which
214allows you to identify EC2 resources by arbitrary symbolic names,
215instead of Amazon resource identifiers. Tables that map symbolic
216names to identifiers can be stored in several formats, such as
217plain text files, <a href="http://www.gnu.org/software/gdbm/">GDBM</a>
218or <a href="http://www.openldap.org">LDAP</a> databases.
219
220
diff --git a/postproc.awk b/postproc.awk
new file mode 100644
index 0000000..c0c347a
--- a/dev/null
+++ b/postproc.awk
@@ -0,0 +1,81 @@
1BEGIN {
2 if (!filename)
3 filename = "a";
4}
5function out(text) {
6 print text >> (filename "." state)
7}
8function downh(num) {
9 num=substr($0, 3, 1)
10 sub(/<h[0-9]>/,("<h" (num+1) ">"))
11 sub(/<\/h[0-9]>/,("</h" (num+1) ">"))
12}
13state == 0 && /<body>/ { state = 1; next }
14state == 0 { next }
15
16state == 1 && /<h1>/ {
17 gsub(/\\-/,"-")
18 downh()
19 out($0);
20 next
21}
22state == 1 && /<hr>/ {
23 out("<hr>");
24 state = 2;
25 next
26}
27state == 1 { next }
28
29state == 2 && /<h2>Index<\/h2>/ {
30 state = 3;
31 out($0);
32 next
33}
34# man2html is unable to handle commands like:
35# .IP \n[step].
36# Instead of evaluating \n[step], it strips "\n[" and leaves the rest
37# untouched. The klugde below is based on the assumption that we always
38# use step as the name of the variable.
39state == 2 && /<dl/ { counter=1 }
40state == 2 && /<dt>step\]\./ {
41 sub(/<dt>step\]\./,("<dt>" counter "."))
42 ++counter
43}
44
45state == 2 && /<h2>COMMANDS<\/h2>/ { command_links=1; out($0); next }
46state == 2 && /<h2>/ { command_links=0 }
47state == 2 && command_links == 1 && /^<b>.*<\/b>[,.]$/ {
48 punct=substr($0,length($0))
49 sub(/<b>/,"")
50 sub(/<\/b>[,.]/,"")
51 out("<b><a href=\"eclat-" $0 ".html\">" $0 "</a></b>" punct)
52 if (punct == ".")
53 command_links=0
54 next
55}
56
57state == 3 && /<hr>/ {
58 out($0);
59 state = 4;
60 next
61}
62
63state == 4 {
64 out("<p>This document was created by <a href=\"http://primates.ximian.com/~flucifredi/man/\">man2html</a> and postprocessed by postproc.awk.</p>")
65 out("<p>" strftime("%c", systime()) "</p>")
66 exit
67}
68
69/<h[0-9]>/ { downh() }
70
71{
72 s=gensub(/HREF="\.\.\/man[1-8n]\/(eclat[a-z.-]*)\.[1-8n]\.html/,
73 "href=\"\\1.html", "g")
74 s=gensub(/HREF="\.\.\/man[1-8n]\/(forlan[a-z.-]*)\.[1-8n]\.html/,
75 "href=\"\\1.html", "g",s)
76 s=gensub(/HREF="\.\.\/man([1-8n])\/(.+)\.[1-8n]\.html/,
77 "href=\"http://www.manpagez.com/man/\\1/\\2/","g",s)
78 out(s)
79}
80
81 \ No newline at end of file

Return to:

Send suggestions and report system problems to the System administrator.