Initial checkin for describe web pages.

This commit is contained in:
gdr 1998-01-14 05:10:21 +00:00
parent 9c1ef2e905
commit c3f0249dc8
14 changed files with 3033 additions and 0 deletions

121
doc/describe/Makefile Normal file
View File

@ -0,0 +1,121 @@
#
# $Id: Makefile,v 1.1 1998/01/14 05:10:01 gdr Exp $
#
# Devin Reade, January 1998
#
# What is the current version of describe, descc, and descu? (They're
# in lockstep.)
VERSION_SHORT = 103
VERSION_LONG = 1.0.3
###################################################################
###### You shouldn't have to change anything below this line ######
###################################################################
# This is the describe database source file.
DB_SRC = describe.src
# We print this in comments at the top of the generated html.
WARNING = This is a generated file. Do not edit.
# This is a file we generate so that we can make the indexed pages.
XREF = xref.db
# Where, in the ftp hierarchy, will the files go?
RELDIR = /ftp/pub/apple2/gs.specific/gno/doc
# The file which explains the db NuFX archives for the ftp site.
README_IN = README.src.in
README_OUT = README.src
# Files released to the ftp site.
RELEASE_README = desc.txt
RELEASE_SRC = desc.src.shk
RELEASE_DB = desc.db.shk
HEAD = head.html
TAIL = tail.html
FINAL_DIR = /home/gno/public_html/describe
FINAL_HTML = $(FINAL_DIR)/dbase.html \
$(FINAL_DIR)/index.html \
$(FINAL_DIR)/program.html \
$(FINAL_DIR)/submit.html \
$(FINAL_DIR)/view.html
# Directories for generated files
GEN = $(FINAL_DIR)/gen
ENTRY = $(FINAL_DIR)/entry
# Directory for scratch files
TDIR = ./tmp
default: xref web readme
web: $(FINAL_DIR) $(FINAL_HTML)
readme: $(README_OUT)
xref: $(GEN) $(ENTRY)
./mkindex < $(DB_SRC) > $(XREF)
./mkgen $(XREF)
chmod 644 $(GEN)/*
chmod 644 $(ENTRY)/*
OWNER = -ogdr -ga2ftp
MODE_F = -m444
MODE_X = -m775
release: $(RELDIR)/$(RELEASE_README) $(RELDIR)/$(RELEASE_SRC)
$(RELDIR)/$(RELEASE_README): $(RELDIR) $(README_OUT)
install $(OWNER) $(MODE_F) $(README_OUT) $@
$(RELDIR)/$(RELEASE_SRC): $(RELDIR) $(TDIR) $(DB_SRC)
@echo "installing $@"; \
cp $(DB_SRC) $(TDIR); \
udl -g $(TDIR)/$(DB_SRC); \
rm -f $@; \
cd $(TDIR); \
nulib cf $(RELEASE_SRC) $(DB_SRC); \
install $(OWNER) $(MODE_F) $(RELEASE_SRC) $@
$(RELDIR):; @[ -d $(RELDIR) ] || install -d $(OWNER) $(MODE_X) $(RELDIR)
$(TDIR):; @[ -d $(TDIR) ] || install -d $(OWNER) $(MODE_X) $(TDIR)
$(FINAL_DIR):; @[ -d $(FINAL_DIR) ] || install -d -m755 $(FINAL_DIR)
$(GEN):; @[ -d $(GEN) ] || install -d -m755 $(GEN)
$(ENTRY):; @[ -d $(ENTRY) ] || install -d -m755 $(ENTRY)
#
# Implicit rules.
#
$(FINAL_DIR)/%.html: %.html
@echo "creating $@"; \
tmpfile=/tmp/desc.build.$$; \
trap "rm -f $$tmpfile" 0 1 2 15; \
cat $(HEAD) $< $(TAIL) > $$tmpfile; \
htmldate="`./getdate -printdate < $$tmpfile`"; \
dbdate="`./getdate -describe < $(DB_SRC)`"; \
sed \
-e 's/%%WARNING%%/$(WARNING)/;' \
-e 's/%%VERSION_SHORT%%/$(VERSION_SHORT)/;' \
-e 's/%%VERSION_LONG%%/$(VERSION_LONG)/;' \
-e "s/%%LAST_UPDATE%%/$$htmldate/;" \
-e "s/%%DATE%%/$$dbdate/;" \
< $$tmpfile > $@; \
chmod 644 $@
$(README_OUT): $(README_IN) $(DB_SRC)
@echo "making $@"; \
dbdate="`./getdate -describe < $(DB_SRC)`"; \
sed -e "s,%%DATE%%,$$dbdate,;" < $(README_IN) > $@
# Additional dependancies.
$(FINAL_DIR)/dbase.html:: $(HEAD) $(TAIL)
$(FINAL_DIR)/index.html:: $(HEAD) $(TAIL)
$(FINAL_DIR)/program.html:: $(HEAD) $(TAIL)
$(FINAL_DIR)/submit.html:: $(HEAD) $(TAIL)
$(FINAL_DIR)/view.html:: $(HEAD) $(TAIL)

View File

@ -0,0 +1,10 @@
The describe(8) utility shows current information on various programs.
Its information is contained in the describe database. The files
desc.src.shk and desc.db.shk each contain a copy of the most recently
released database.
These files were last modified %%DATE%%.
The file desc.src.shk contains the database "source" file, which is ASCII
and human-readable. The file desc.db.shk contains the precompiled version
of the database.

43
doc/describe/dbase.html Normal file
View File

@ -0,0 +1,43 @@
<!-- $Id: dbase.html,v 1.1 1998/01/14 05:10:05 gdr Exp $ -->
<A HREF="gno/describe/index.html"><IMG src="icons/back.gif"
alt="Back to the Describe Database Page"
align="right" width="24" height="24" border="0"></A>
<BR CLEAR=RIGHT>
<H1 ALIGN=CENTER>Obtaining a Current Database</H1>
The describe database last updated on <b>%%DATE%%</b>.
<p>
The describe database consists of two files. The first is a specially
formatted ASCII file, known as the database &quot;source&quot; file.
It can be manually edited with any text editor, or updated with
<A HREF="gno/man/man8/descu.8.html">descu</A>(8).
It doesn't really matter where on your system this file resides, but the path
<b>/usr/lib/describe.src</b>
is recommended.
<p>
The second file is the compiled database file. This file is compiled
from the source file by the
<A HREF="gno/man/man8/descc.8.html">descc</A>(8)
program. It is a binary file and not human-readable. Unless the
<b>DESCDB</b>
environment variable has been set, this file <em> must </em> have the
pathname
<b>/usr/lib/describe.db</b>.
<p>
Both files are available here:
<ul>
<li>database source file:
<A HREF="ftp://ftp.gno.org/pub/apple2/gs.specific/gno/doc/desc.src.shk">
ftp://ftp.gno.org/pub/apple2/gs.specific/gno/doc/desc.src.shk</A>
<li>precompiled database:
<A HREF="ftp://ftp.gno.org/pub/apple2/gs.specific/gno/doc.utils/desc.db.shk">
ftp://ftp.gno.org/pub/apple2/gs.specific/gno/doc.utils/desc.db.shk</A>
</ul>
Back to the <A HREF="gno/describe/index.html">Describe Database Page</A>.
<p>

2315
doc/describe/describe.src Normal file

File diff suppressed because it is too large Load Diff

67
doc/describe/getdate Executable file
View File

@ -0,0 +1,67 @@
#! /usr/bin/perl -s
#
# getdate -date
# Extract the date from the RCS Id string in a file on stdin.
#
# getdate -version
# Extract the RCS version from the RCS Id string in a file on stdin.
#
# getdate -describe
# Extract the "last modified" date from a describe(1) database
# source file.
#
# $Id: getdate,v 1.1 1998/01/14 05:10:10 gdr Exp $
#
push(@month,
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",
"Oct", "Nov", "Dec" );
# for ($i=0; $i<12; $i++) {
# printf("month %d is %s\n", $i, $month[$i]);
# }
if (defined($date)) {
$printdate = 1;
}
if (defined($version)) {
$printversion = 1;
}
if (defined($describe)) {
while(<>) {
(/^\#\s+Last\s+revision:\s+(.*)/) && printf("%s\n", $1) && last;
}
exit(0);
}
while(<>) {
if (/\$Id([^\$]*)\$/) {
$_ = $1;
if (/^:\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+/) {
$file=$1;
$version=$2;
$rawdate=$3;
$time=$4;
if ($rawdate =~ m,(\d+)/(\d+)/(\d+),) {
$year = $1;
$m = $2;
$day = $3;
$mon = @month[int($2) - 1];
$date = "$day $mon $year";
}
} else {
$date = "(unspecified date)";
}
if ($printdate) {
printf("%s\n", $date);
} elsif ($printversion) {
printf("%s\n", $version);
} else {
printf("getdate: bad invocation\n");
exit(1);
}
exit(0);
}
}
exit(1);

14
doc/describe/head.html Normal file
View File

@ -0,0 +1,14 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<!-- %%WARNING%% -->
<HEAD>
<TITLE>Apple IIgs Describe Database</TITLE>
<META name="description" content="List of Utilities for GNO/ME">
<META name="keywords" content="Apple IIgs ORCA/Shell James Brookes">
<BASE HREF="http://www.gno.org/">
</HEAD>
<BODY background="icons/bluebg.jpg" text="#000000" bgcolor="#00C0FF"
link="#0000FF" alink="#001177" vlink="#001177">

53
doc/describe/index.html Normal file
View File

@ -0,0 +1,53 @@
<!-- $Id: index.html,v 1.1 1998/01/14 05:10:12 gdr Exp $ -->
<A HREF="gno"><IMG src="icons/back.gif" alt="Back to the GNO Home Page"
align="right" width="24" height="24" border="0"></A>
<BR CLEAR=RIGHT>
<H1 ALIGN=CENTER>Home of James' describe database</H1>
The current version of describe is <b>%%VERSION_LONG%%</b>.
<br>
The describe database was last updated <b>%%DATE%%</b>.
<p>
<hr>
<p>
A while ago, James Brookes wrote a utility called &quot;describe&quot;.
It has a simple purpose: To maintain a database of utilities for
<A HREF="gno">GNO/ME</A>
and
<A HREF="http://hypermall.com/byteworks">ORCA/Shell</A>
and offer a way to get a concise description of a utility quickly and easily.
<P>
Since describe is nothing without an up-to-date database,
<A HREF="http://www.arrowweb.com/sbehrens">S&ouml;nke Behrens</A> created
the first online describe database, which provided a central repository
for the data, and an easy mechanism for updating that data.
<p>
Leslie Barstow also maintains an online version of the describe database.
(He gets his data from S&ouml;nke.)
His version is indexed by alphabet and category, and is searchable.
You can find his version at
<A href="http://www.servtech.com/public/phoenix/computers/gno">
http://www.servtech.com/public/phoenix/computers/gno</A>.
<p>
This page is based heavily on S&ouml;nke's and Leslie's work.
From this page you can:
<ul>
<li>download the current version of the
<A HREF="gno/describe/program.html">describe program</A>;
<li>download the current version of the
<A HREF="gno/describe/dbase.html">database</A>;
<li><A HREF="gno/describe/submit.html">make submissions</A>
for new entries and updates; and
<li><A HREF="gno/describe/view.html">view current entries</A>;
</ul>
<p>
Back to the <A HREF="gno">GNO Web Page</A>.
<p>

91
doc/describe/mkgen Executable file
View File

@ -0,0 +1,91 @@
#! /usr/bin/perl
$gnohome_internal = "/home/gno/public_html";
$gnohome_external = "http://www.gno.org/gno";
$basedir = "/home/gno/public_html/describe/gen";
$entrydir = "describe/entry"; # relative to $gnohome_*
while (<>) {
($name, $classes) = split;
$namelist{$name} = $classes;
}
@keylist = keys(%namelist);
@sorted = sort(@keylist);
$currentLetter = '';
foreach $f (@sorted) {
# create the describe entry
open(pp, "/usr/local/bin/describe $f|")
|| die ("couldn't open pipe to 'describe $f'");
$filename = "$gnohome_internal/$entrydir/$f.html";
open(fp2, "> $filename") || die("couldn't open $filename");
printf(fp2
"<html>\n" .
"<!-- This page is auto-generated -->\n" .
"<head>\n" .
"<title>Apple IIgs Describe Database -- " . $f . "</title>\n" .
"</head>\n" .
"<body bgcolor=#ffffff>\n" .
"<h1>Describe Entry for " . $f . "</h1>\n" .
"<pre>\n");
while($_ = <pp>) {
printf(fp2 "%s", $_);
}
printf(fp2 "</pre><hr></body></html>\n");
close(fp2);
close(pp);
# make the index-by-name page
$l = substr($f, 0, 1);
if ($l ne $currentLetter) {
($currentLetter eq '') ||
(printf(fp "</ul><hr></body></html>\n") && close(fp));
$filename = $basedir . '/' . $l . '.html';
open(fp, "> $filename") || die("couldn't open $filename");
$currentLetter = $l;
$cap = $l;
$cap =~ tr/a-z/A-Z/;
printf(fp
"<html>\n" .
"<!-- This page is auto-generated -->\n" .
"<head>\n" .
"<title>Apple IIgs Describe Database -- Index by " . $cap .
"</title>\n" .
"</head>\n" .
"<body bgcolor=#ffffff>\n" .
"<h1>Describe Entries by Name: " . $cap . "</h1>\n" .
"<ul>\n");
}
printf(fp "<li><A HREF=\"%s/%s/%s.html\">%s</A>\n",
$gnohome_external, $entrydir, $f, $f);
}
($currentLetter eq '') ||
(printf(fp "</ul><hr></body></html>\n") && close(fp));
$letters = "a b c d e f g h i j k l m n o p q r s t u v w x y z";
@letter = split(/\s+/, $letters);
foreach $l (@letter) {
$cap = $l;
$cap =~ tr/a-z/A-Z/;
$filename = "$basedir/$l.html";
if (! -f $filename) {
open(fp, "> $filename") || die("couldn't open $filename");
printf(fp
"<html>\n" .
"<!-- This page is auto-generated -->\n" .
"<head>\n" .
"<title>Apple IIgs Describe Database -- Index by " . $cap .
"</title>\n" .
"</head>\n" .
"<body bgcolor=#ffffff>\n" .
"<H1>Empty Page</H1>\n" .
"There are currently no utilities registered that begin ".
"with " . $cap . ".<p>\n" .
"</body></html>\n");
close(fp);
}
}

67
doc/describe/mkindex Executable file
View File

@ -0,0 +1,67 @@
#! /usr/bin/perl
$dirroot = "/ftp/pub/apple2/gs.specific";
$dirlist = "gno orca";
#
# Get the list of .index.src files. We will look in here for references
# to the describe database.
#
open(fp, "(cd $dirroot; find $dirlist -name .index.src -print)|") ||
die("couldn't get file list");
@indexfiles = <fp>;
close(fp);
# extract all the program names from the db source file.
while(<>) {
chop;
if (/^Name:\s+(.*)/) {
$name = $1;
$name =~ s/\s+$//;
if ($name =~ /\s+/) {
printf(stderr "%s:%d: Multi-word program name \"%s\". Skipped.\n",
$ARGV, $., $name);
} else {
$name =~ tr/A-Z/a-z/;
$namelist{$name} = ':';
}
}
}
foreach $f (@indexfiles) {
chop($f);
if (open(fp, "$dirroot/$f")) {
$f2 = $f;
$f2 =~ s,/.index.src$,,;
while ($_ = <fp>) {
if (/%%describe%%([^%]+)%%/) {
$ref = $1;
$ref =~ tr/A-Z/a-z/;
if (defined($namelist{$ref})) {
($namelist{$ref} .= "$f2:")
unless ($namelist{$ref} =~ /:$f2:/);
} else {
printf(stderr
"%s/%s:%d: Warning: Reference to program (\"%s\") ".
"not in database. Entry skipped.\n",
$dirroot, $f, $., $ref);
}
}
}
} else {
printf("couldn't open %s/%s: file skipped", $dirroot, $f);
}
}
# print out the results.
@keylist = keys(%namelist);
foreach $k (@keylist) {
$s = $namelist{$k};
($s eq ':') && ($s = ':unsorted:');
printf("%s\t%s\n", $k, $s);
}

32
doc/describe/program.html Normal file
View File

@ -0,0 +1,32 @@
<!-- $Id: program.html,v 1.1 1998/01/14 05:10:16 gdr Exp $ -->
<A HREF="gno/describe/index.html"><IMG src="icons/back.gif"
alt="Back to the Describe Database Page"
align="right" width="24" height="24" border="0"></A>
<BR CLEAR=RIGHT>
<H1 ALIGN=CENTER>Obtaining the Describe Program</H1>
The current version of describe is <b>%%VERSION_LONG%%</b>.
<p>
If you don't have describe yet, or if yours is out-of-date, you can
obtain a current copy from
<A HREF="ftp://ftp.gno.org/pub/apple2/gs.specific/gno/doc.utils/describe103.shk">
ftp://ftp.gno.org/pub/apple2/gs.specific/gno/doc.utils/describe103.shk</A>
This archive actually consists of three different programs:
<ul>
<li><A HREF="gno/man/man1/describe.1.html">describe</A>,
the program which prints out the requested describe entry;
<li><A HREF="gno/man/man8/descc.8.html">descc</A>,
which compiles the describe database input &quot;source%quot; file
into a binary database; and
<li><A HREF="gno/man/man8/descu.8.html">descu</A>,
which can be used for batch updates to the describe database
&quot;source&quot; file.
</ul>
<p>
Back to the <A HREF="gno/describe/index.html">Describe Database Page</A>.
<p>

99
doc/describe/submit.html Normal file
View File

@ -0,0 +1,99 @@
<!-- $Id: submit.html,v 1.1 1998/01/14 05:10:17 gdr Exp $ -->
<A HREF="gno/describe/index.html"><IMG src="icons/back.gif"
alt="Back to the Describe Database Page"
align="right" width="24" height="24" border="0"></A>
<BR CLEAR=RIGHT>
<H1 ALIGN=CENTER>Making Submissions</H1>
If you have written a shell program for GNO or ORCA/Shell, please take a
minute and submit a describe entry. If you don't know what a describe
entry looks like, see the
<A HREF="gno/man/man8/descc.8.html">descc</A>(8)
manual page or look at the describe database source file. Alternately,
the file
<A HREF="pub/apple2/gs.specific/gno/doc/templates10.shk">
ftp://ftp.gno.org/pub/apple2/gs.specific/gno/doc/templates10.shk</A>
contains examples of describe entries plus other recommended methods of
documenting your programs.
<p>
There are two ways to submit a describe entry:
<ol>
<li>Use the <A HREF="gno/describe/submit.html#form">form</A>, below; or
<li>Email your entry or entries to
<A HREF="mailto:describe-submit@trenco.gno.org">
describe-submit@trenco.gno.org</A>.
Since the recipient of this address is a filter, is is mandatory
that your mail conform to the following conventions:
<ul>
<li>You must have the word &quot;describe&quot; somewhere in the
subject line. The case doesn't matter.
<li>The body of your message may only contain one or more describe
entries. All field names (such as &quot;Name:&quot; and
&quot;Shell:&quot;) must be at the start of a line. The
last (description) field is ended either at the end of the
message, or when the next &quot;Name:&quot; field is found.
<li>If your email software appends your .signature file, ensure
that your signature is delimited from the body of the message
in the standard fashion: By two dash ('-') characters
immediately followed by a newline.
<li>Do not use mailers which automaticly insert html formatting
information outside of the message headers.
</ul>
If your email does not conform to these conventions, then it will
be ignored by the filter.
</ol>
The master database may take a few days before it is updated, regardless
of which method you use. This is because a human reviews the entries
before they are added to the database. This check is done to avoid
abuse by malicious individuals.
<p>
We recommend that you actually include a describe entry in with your
program files. (Describe files usually use the suffix &quot;.desc&quot).
That way, it is easier to remember to update your describe entry when
you update your program, and you only have to fill out the information
once.
<p>
If you are updating a program that has been around for a while, you
might want to check for an existing describe entry before making a
submission. Many programs have entries in the database even though
none are included in the sources. (In most cases, the programs predate
the database.)
<p>
<A NAME="form">
<!-- http://www.arrowweb.com/cgi-bin/cgi-email/sbehrens/descform.txt -->
<form action="cgi-bin/describe.cgi"
method="post">
<table border="5">
<tr><td>Program name:<td><input type="Text" name="Name">
<tr><td>Program version:<td><input type="Text" name="Version">
<tr><td>Shell(s) supported:
<td><input type="CheckBox" name="Shell1" value="GNO/ME"> GNO/ME
<tr><td>
<td><input type="CheckBox" name="Shell2" value="ORCA/Shell"> ORCA/Shell
<tr><td>Author name:<td><input type="Text" name="Author">
<tr><td>Author email:<td><input type="Text" name="Contact">
<tr><td>Location (e.g. /usr/local/bin):<td><input type="Text" name="Location">
<tr><td>FTP site:<td><input type="Text" name="Ftp">
</TABLE>
<br>
Description of program:<br>
<textarea name="Description" cols="62" rows="6"></textarea>
<p>
Everything in order? Then send it off, and it will be online shortly.
<p>
<input type="Submit" name="Submit" value="Submit new describe entry">
<input type="Reset" name="Reset" value="Clear all fields">
</form>
Back to the <A HREF="gno/describe/index.html">Describe Database Page</A>.
<p>

15
doc/describe/tail.html Normal file
View File

@ -0,0 +1,15 @@
<hr>
This page was last updated <b>%%LAST_UPDATE%%</b>.
<br>
Comments on this page should be forwarded to Devin Reade at
<A HREF="mailto:gdr@eddore.myrias.com">gdr@eddore.myrias.com</A>
<p>
<A HREF="http://www.visi.com/~nathan/a2/a2viewable.html">
<img alt="Apple II Viewable Page" height=31 width=88 border=0
src="icons/a2viewable.gif"></A>
<br>
</body>
</html>

9
doc/describe/template Normal file
View File

@ -0,0 +1,9 @@
Name:
Version:
Shell:
Author:
Contact: -
Where:
FTP: trenco.myrias.com, ground.isca.uiowa.edu

97
doc/describe/view.html Normal file
View File

@ -0,0 +1,97 @@
<!-- $Id: view.html,v 1.1 1998/01/14 05:10:21 gdr Exp $ -->
<A HREF="gno/describe/index.html"><IMG src="icons/back.gif"
alt="Back to the Describe Database Page"
align="right" width="24" height="24" border="0"></A>
<BR CLEAR=RIGHT>
<H1 ALIGN=CENTER>Viewing Current Entries</H1>
The entries are sorted in a few ways. Select whichever is appropriate.
<p>
<dt>By Name:
<dd>
<A HREF="gno/describe/gen/a.html">A</A>
<A HREF="gno/describe/gen/b.html">B</A>
<A HREF="gno/describe/gen/c.html">C</A>
<A HREF="gno/describe/gen/d.html">D</A>
<A HREF="gno/describe/gen/e.html">E</A>
<A HREF="gno/describe/gen/f.html">F</A>
<A HREF="gno/describe/gen/g.html">G</A>
<A HREF="gno/describe/gen/h.html">H</A>
<A HREF="gno/describe/gen/i.html">I</A>
<A HREF="gno/describe/gen/j.html">J</A>
<A HREF="gno/describe/gen/k.html">K</A>
<A HREF="gno/describe/gen/l.html">L</A>
<A HREF="gno/describe/gen/m.html">M</A>
<A HREF="gno/describe/gen/n.html">N</A>
<A HREF="gno/describe/gen/o.html">O</A>
<A HREF="gno/describe/gen/p.html">P</A>
<A HREF="gno/describe/gen/q.html">Q</A>
<A HREF="gno/describe/gen/r.html">R</A>
<A HREF="gno/describe/gen/s.html">S</A>
<A HREF="gno/describe/gen/t.html">T</A>
<A HREF="gno/describe/gen/u.html">U</A>
<A HREF="gno/describe/gen/v.html">V</A>
<A HREF="gno/describe/gen/w.html">W</A>
<A HREF="gno/describe/gen/x.html">X</A>
<A HREF="gno/describe/gen/y.html">Y</A>
<A HREF="gno/describe/gen/z.html">Z</A>
<p>
<dt>By Category:
<dd><ul>
<li><A HREF="gno/describe/gen/archive.html">Archiving Utilities</A>.
This includes utilities for compression, ascii encoding,
Binary-II encoding, and related functionality.
<li><A HREF="gno/describe/gen/comm.html">Communications Utilities</A>.
<li><A HREF="gno/describe/gen/daemon.html">Daemons</A>.
These are programs which run periodically in the background, or
asynchronously as required.
<li><A HREF="gno/describe/gen/docutil.html">Documentation Utilities</A>.
These are utilities intended for viewing and maintaining
documentation, and for locating other utilties.
<li><A HREF="gno/describe/gen/edit.html">Editors, Word Processors, and
Document Viewers</A>.
<li><A HREF="gno/describe/gen/file.convert.html">File Conversion Utilities</A>.
This includes utilities for newline conversion, entabbing and
detabbing, stripping control characters, and file format translations.
<li><A HREF="gno/describe/gen/file.manip.html">File Manipulation Utilities</A>,
for copying, renaming, or deleting files, changing file attributes,
and similar operations.
<li><A HREF="gno/describe/gen/games.html">Games</A>.
This also includes programs that are not really games, but fall
under this category in a traditional UNIX environment such as text
banners, reminder programs, and sound and music players.
<li><A HREF="gno/describe/gen/graphics.html">Graphics Programs</A>.
<li><A HREF="gno/describe/gen/.html">GUI</A>.
Most GNO programs are intended for use with the text interface.
This list includes graphics programs such as window managers and
their modules.
<li><A HREF="gno/describe/gen/lang.html">Programming Languages</A>.
Assemblers, compilers, and interpreters.
<li><A HREF="gno/describe/gen/lib.html">Libraries</A>.
<li><A HREF="gno/describe/gen/mail.html">Mail Readers</A>.
<li><A HREF="gno/describe/gen/network.html">Networking Utilities</A>.
<li><A HREF="gno/describe/gen/news.html">News Readers</A>.
<li><A HREF="gno/describe/gen/patch.html">Patches</A>.
<li><A HREF="gno/describe/gen/prog.html">Programming Utilities</A>.
<li><A HREF="gno/describe/gen/script.html">Scripting Utilities</A>.
<li><A HREF="gno/describe/gen/shells.html">Shells</A>.
<li><A HREF="gno/describe/gen/sound.html">Sound and Music Utilities</A>.
These are programs for creating, editing, or playing music and
sound files.
<li><A HREF="gno/describe/gen/sys.html">System Utilities</A>.
These are system interface related utilities. They include
programs for logging in, directory manipulation, machine status,
and job control.
<li><A HREF="gno/describe/gen/sysadmin.html">System Administration
Utilities</A>.
<li><A HREF="gno/describe/gen/text.html">Text Utilities</A>.
This includes search and selection utilities. They are often used
in shell scripts.
</ul>
Back to the <A HREF="gno/describe/index.html">Describe Database Page</A>.
<p>