mirror of
https://github.com/GnoConsortium/gno-docs.git
synced 2024-12-03 23:50:15 +00:00
added files for online describe(1) support
These are as they were last used in the late 90's. They need a major rework to integrate with the existing web/ftp site.
This commit is contained in:
parent
3e6bac2857
commit
3b278d83e1
136
describe/Makefile
Normal file
136
describe/Makefile
Normal file
@ -0,0 +1,136 @@
|
||||
#
|
||||
# $Id: Makefile,v 1.7 1999/07/03 16:55:41 gdr-ftp Exp $
|
||||
#
|
||||
# Devin Reade, January 1998
|
||||
#
|
||||
|
||||
# What is the current version of describe, descc, and descu? (They're
|
||||
# in lockstep.)
|
||||
VERSION_SHORT = 106
|
||||
VERSION_LONG = 1.0.6
|
||||
|
||||
|
||||
###################################################################
|
||||
###### 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
|
||||
HTML = dbase.html \
|
||||
index.html \
|
||||
program.html \
|
||||
submit.html \
|
||||
view.html
|
||||
|
||||
# Directories for generated files
|
||||
GEN = $(FINAL_DIR)/gen
|
||||
ENTRY = $(FINAL_DIR)/entry
|
||||
|
||||
# Directory for scratch files
|
||||
TDIR = ./tmp
|
||||
|
||||
default: setup xref web readme
|
||||
readme: setup $(README_OUT)
|
||||
readme-install: $(RELDIR)/$(RELEASE_README)
|
||||
xref: setup $(XREF)
|
||||
release: setup default readme-install \
|
||||
$(RELDIR)/$(RELEASE_SRC) \
|
||||
$(RELDIR)/$(RELEASE_DB)
|
||||
|
||||
$(XREF): $(DB_SRC)
|
||||
./mkindex < $(DB_SRC) > $(XREF)
|
||||
./mkgen $(XREF)
|
||||
chmod 644 $(GEN)/*
|
||||
chmod 644 $(ENTRY)/*
|
||||
|
||||
OWNER = -ogdr -ga2ftp
|
||||
MODE_F = -m444
|
||||
MODE_X = -m775
|
||||
|
||||
$(RELDIR)/$(RELEASE_README): $(README_OUT)
|
||||
install $(OWNER) $(MODE_F) $(README_OUT) $@
|
||||
|
||||
# We redirect nulib stdout to /dev/null because for some reason
|
||||
# it's printing out a "-^H".
|
||||
$(RELDIR)/$(RELEASE_SRC): $(DB_SRC)
|
||||
@echo "installing $@"; \
|
||||
cp $(DB_SRC) $(TDIR); \
|
||||
udl -g $(TDIR)/$(DB_SRC); \
|
||||
rm -f $@; \
|
||||
cd $(TDIR); \
|
||||
rm -f $(RELEASE_SRC); \
|
||||
nulib cf $(RELEASE_SRC) $(DB_SRC) > /dev/null; \
|
||||
install $(OWNER) $(MODE_F) $(RELEASE_SRC) $@
|
||||
|
||||
# We redirect nulib stdout to /dev/null because for some reason
|
||||
# it's printing out a "-^H".
|
||||
$(RELDIR)/$(RELEASE_DB): $(DB_SRC)
|
||||
@echo "installing $@"; \
|
||||
/usr/local/sbin/descc $(DB_SRC); \
|
||||
cp /usr/lib/describe.db $(TDIR); \
|
||||
cd $(TDIR); \
|
||||
NULIBOPT=type=BIN; export NULIBOPT; \
|
||||
rm -f $(RELEASE_DB); \
|
||||
nulib cf $(RELEASE_DB) describe.db > /dev/null; \
|
||||
install $(OWNER) $(MODE_F) $(RELEASE_DB) $@
|
||||
|
||||
web: setup
|
||||
@tmpfile1=/tmp/desc.build.$$$$a; \
|
||||
tmpfile2=/tmp/desc.build.$$$$b; \
|
||||
trap "rm -f $$tmpfile1 $$tmpfile2" 0 1 2 15; \
|
||||
dbdate="`./getdate -describe < $(DB_SRC)`"; \
|
||||
for f in $(HTML); do \
|
||||
rm -f $$tmpfile1; \
|
||||
cat $(HEAD) $$f $(TAIL) > $$tmpfile1; \
|
||||
htmldate="`./getdate -printdate < $$tmpfile1`"; \
|
||||
rm -f $$tmpfile2; \
|
||||
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/;" \
|
||||
< $$tmpfile1 > $$tmpfile2; \
|
||||
cmp -s $(FINAL_DIR)/$$f $$tmpfile2; \
|
||||
if [ $$? -ne 0 ]; then \
|
||||
echo "creating $(FINAL_DIR)/$$f"; \
|
||||
mv $$tmpfile2 $(FINAL_DIR)/$$f; \
|
||||
chmod 644 $(FINAL_DIR)/$$f; \
|
||||
fi; \
|
||||
done; \
|
||||
rm -f $$tmpfile1 $$tmpfile2
|
||||
|
||||
$(README_OUT): $(README_IN) $(DB_SRC)
|
||||
@echo "making $@"; \
|
||||
dbdate="`./getdate -describe < $(DB_SRC)`"; \
|
||||
sed -e "s,%%DATE%%,$$dbdate,;" < $(README_IN) > $@
|
||||
|
||||
setup:
|
||||
@for d in $(GEN) $(ENTRY) $(FINAL_DIR) $(ENTRY) $(RELDIR) $(TDIR); do \
|
||||
[ -d $$d ] || install -d -m755 $$d; \
|
||||
done
|
||||
|
||||
clobber:; rm -rf *~ $(XREF) $(TDIR) $(README_OUT)
|
||||
nuke:; rm -rf $(FINAL_DIR)/*
|
13
describe/README.src.in
Normal file
13
describe/README.src.in
Normal file
@ -0,0 +1,13 @@
|
||||
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.
|
||||
|
||||
NOTE: You can only use this version of the precompiled database with
|
||||
describe version 1.0.5 and later.
|
43
describe/dbase.html
Normal file
43
describe/dbase.html
Normal file
@ -0,0 +1,43 @@
|
||||
<!-- $Id: dbase.html,v 1.2 1998/01/23 22:37:04 gdr-ftp 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 "source" 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/desc.db.shk">
|
||||
ftp://ftp.gno.org/pub/apple2/gs.specific/gno/doc/desc.db.shk</A>
|
||||
</ul>
|
||||
|
||||
Back to the <A HREF="gno/describe/index.html">Describe Database Page</A>.
|
||||
<p>
|
3325
describe/describe.src
Normal file
3325
describe/describe.src
Normal file
File diff suppressed because it is too large
Load Diff
67
describe/getdate
Executable file
67
describe/getdate
Executable 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
describe/head.html
Normal file
14
describe/head.html
Normal 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
describe/index.html
Normal file
53
describe/index.html
Normal 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 "describe".
|
||||
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ö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ö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ö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>
|
||||
|
255
describe/mkgen
Executable file
255
describe/mkgen
Executable file
@ -0,0 +1,255 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
# This script makes the generated files used by the describe(1) web
|
||||
# page. It's not pretty, but it works.
|
||||
#
|
||||
# Devin Reade, January 1998.
|
||||
#
|
||||
# $Id: mkgen,v 1.5 1999/07/03 16:55:42 gdr-ftp Exp $
|
||||
#
|
||||
|
||||
$gnohome_internal = "/home/gno/public_html";
|
||||
$gnohome_external = "http://www.gno.org/~gno";
|
||||
|
||||
$gendir = "describe/gen"; # relative to $gnohome_*
|
||||
$entrydir = "describe/entry"; # relative to $gnohome_*
|
||||
$basedir = $gnohome_internal . '/' . $gendir;
|
||||
|
||||
$headinfo =
|
||||
'<!-- This page is auto-generated -->' . "\n" .
|
||||
'<META name="description" content="List of Utilities for GNO/ME">' . "\n".
|
||||
'<META name="keywords" content="Apple IIgs ORCA/Shell James Brookes">'
|
||||
. "\n".
|
||||
'<BASE HREF="http://www.gno.org/">'. "\n";
|
||||
$bodyinfo =
|
||||
'<BODY background="icons/bluebg.jpg" text="#000000" bgcolor="#00C0FF"'.
|
||||
' link="#0000FF" alink="#001177" vlink="#001177">' . "\n";
|
||||
$tailinfo =
|
||||
'<hr>' . "\n" .
|
||||
'Comments on this page should be forwarded to Devin Reade at' . "\n" .
|
||||
'<A HREF="mailto:gdr@trenco.gno.org">gdr@trenco.gno.org</A>' . "\n" .
|
||||
'<p>' . "\n" .
|
||||
'<img alt="Apple II Viewable Page" height=31 width=88 border=0' . "\n" .
|
||||
'src="icons/a2viewable.gif">' . "\n" .
|
||||
'<br>' . "\n" .
|
||||
'</body>' . "\n" .
|
||||
'</html>';
|
||||
|
||||
$categoryMap{""} = "";
|
||||
$categoryMap{"gno/archive"} = "archive";
|
||||
$categoryMap{"gno/comm"} = "comm";
|
||||
$categoryMap{"gno/crypto"} = "crypto";
|
||||
$categoryMap{"gno/daemons"} = "daemon";
|
||||
$categoryMap{"gno/doc.utils"} = "docutil";
|
||||
$categoryMap{"gno/editors"} = "edit";
|
||||
$categoryMap{"gno/file.convert"} = "file.convert";
|
||||
$categoryMap{"gno/file.manip"} = "file.manip";
|
||||
$categoryMap{"gno/games"} = "games";
|
||||
$categoryMap{"gno/graphics"} = "graphics";
|
||||
$categoryMap{"gno/gui"} = "gui";
|
||||
$categoryMap{"gno/languages"} = "lang";
|
||||
$categoryMap{"gno/libraries"} = "lib";
|
||||
$categoryMap{"gno/mail"} = "mail";
|
||||
$categoryMap{"gno/network"} = "network";
|
||||
$categoryMap{"gno/news"} = "news";
|
||||
$categoryMap{"gno/patches"} = "patch";
|
||||
$categoryMap{"gno/productivity"} = "productivity";
|
||||
$categoryMap{"gno/programming"} = "prog";
|
||||
$categoryMap{"gno/scripting"} = "script";
|
||||
$categoryMap{"gno/shells"} = "shells";
|
||||
$categoryMap{"gno/sounds"} = "sound";
|
||||
$categoryMap{"gno/sys"} = "sys";
|
||||
$categoryMap{"gno/sysadmin"} = "sysadmin";
|
||||
$categoryMap{"gno/text.utils"} = "text";
|
||||
$categoryMap{"orca/scripting"} = "script";
|
||||
$categoryMap{"unsorted"} = "unsorted";
|
||||
|
||||
$categoryNames{"archive"} = "Archiving Utilities";
|
||||
$categoryNames{"comm"} = "Communications Utilities";
|
||||
$categoryNames{"crypto"} = "Cryptography";
|
||||
$categoryNames{"daemon"} = "Daemons";
|
||||
$categoryNames{"docutil"} = "Documentation Utilities";
|
||||
$categoryNames{"edit"} = "Editors, Word Processors, and Document " .
|
||||
"Viewers";
|
||||
$categoryNames{"file.convert"} = "File Conversion Utilities";
|
||||
$categoryNames{"file.manip"} = "File Manipulation Utilities";
|
||||
$categoryNames{"games"} = "Games";
|
||||
$categoryNames{"graphics"} = "Graphics Programs";
|
||||
$categoryNames{"gui"} = "GUI";
|
||||
$categoryNames{"lang"} = "Programming Languages";
|
||||
$categoryNames{"lib"} = "Libraries";
|
||||
$categoryNames{"mail"} = "Mail Readers";
|
||||
$categoryNames{"network"} = "Networking Utilities";
|
||||
$categoryNames{"news"} = "News Readers";
|
||||
$categoryNames{"patch"} = "Patch Programs";
|
||||
$categoryNames{"productivity"} = "Productivity";
|
||||
$categoryNames{"prog"} = "Programming Utilities";
|
||||
$categoryNames{"script"} = "Scripting Utilities";
|
||||
$categoryNames{"shells"} = "Shells";
|
||||
$categoryNames{"sound"} = "Sound and Music Utilities";
|
||||
$categoryNames{"sys"} = "System Utilities";
|
||||
$categoryNames{"sysadmin"} = "System Administration Utilities";
|
||||
$categoryNames{"text"} = "Text Manipulation Utilities";
|
||||
$categoryNames{"unsorted"} = "Utilities Not Yet Sorted";
|
||||
|
||||
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" .
|
||||
"<head>\n" .
|
||||
"<title>Apple IIgs Describe Database -- %s</title>\n" .
|
||||
"</head>%s" .
|
||||
"<body bgcolor=#ffffff>\n" .
|
||||
"<h1>Describe Entry for %s</h1>\n" .
|
||||
"<pre>\n",
|
||||
$f, $headinfo, $f);
|
||||
while($_ = <pp>) {
|
||||
printf(fp2 "%s", $_);
|
||||
}
|
||||
printf(fp2 "</pre>\n%s\n", $tailinfo);
|
||||
close(fp2);
|
||||
close(pp);
|
||||
|
||||
# make the index-by-name page
|
||||
$l = substr($f, 0, 1);
|
||||
if ($l ne $currentLetter) {
|
||||
($currentLetter eq '') ||
|
||||
(printf(fp "</ul>%s\n", $tailinfo) && 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" .
|
||||
"<head>\n" .
|
||||
"<title>Apple IIgs Describe Database -- Index by %s</title>\n".
|
||||
"%s\n" .
|
||||
"</head>\n" .
|
||||
"%s\n" .
|
||||
"<h1>Describe Entries by Name: %s</h1>\n" .
|
||||
"<ul>\n",
|
||||
$cap, $headinfo, $bodyinfo, $cap);
|
||||
}
|
||||
printf(fp "<li><A HREF=\"%s/%s/%s.html\">%s</A>\n",
|
||||
$gnohome_external, $entrydir, $f, $f);
|
||||
|
||||
# save the category for later
|
||||
@catlist = split(/:/, $namelist{$f});
|
||||
foreach $catentry (@catlist) {
|
||||
if (!defined($categoryMap{$catentry})) {
|
||||
printf(stderr "WARNING: Unregistered category \"%s\" for %s: " .
|
||||
"skipped\n",
|
||||
$catentry, $f);
|
||||
} elsif ($categoryMap{$catentry} ne '') {
|
||||
$categories{$categoryMap{$catentry}} .= $f . ':';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
($currentLetter eq '') ||
|
||||
(printf(fp "</ul>\n%s\n", $tailinfo) && 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>%s\n",
|
||||
$tailinfo);
|
||||
close(fp);
|
||||
}
|
||||
}
|
||||
|
||||
#
|
||||
# Now do them by category
|
||||
#
|
||||
|
||||
@catkeys = keys(%categories);
|
||||
foreach $k (@catkeys) {
|
||||
$file = $basedir . '/' . $k . '.html';
|
||||
open(fp, "> $basedir/$k.html") || die("could not open $basedir/$k.html");
|
||||
printf(fp
|
||||
"<html>\n" .
|
||||
"<head>\n" .
|
||||
"<title>Apple IIgs Describe Database -- By Category</title>\n" .
|
||||
"%s\n" .
|
||||
"</head>\n" .
|
||||
"%s\n",
|
||||
$headinfo, $bodyinfo);
|
||||
if (defined($categoryNames{$k})) {
|
||||
printf(fp
|
||||
"<h1>%s</h1><hr>\n",
|
||||
$categoryNames{$k});
|
||||
} else {
|
||||
printf(stderr "WARNING: No category name for \"%s\"\n", $k);
|
||||
}
|
||||
printf(fp "<ul>\n");
|
||||
@files = sort(split(/:/, $categories{$k}));
|
||||
foreach $f (@files) {
|
||||
printf(fp "<li><A HREF=\"%s/%s/%s.html\">%s</A>\n",
|
||||
$gnohome_external, $entrydir, $f, $f);
|
||||
}
|
||||
printf(fp "</ul>\n%s\n", $tailinfo);
|
||||
close(fp);
|
||||
|
||||
}
|
||||
|
||||
# make category pages for which there is no entry
|
||||
|
||||
@catkeys = values(%categoryMap);
|
||||
foreach $k (@catkeys) {
|
||||
$filename = $basedir . "/" . $k . '.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 -- By Category</title>\n" .
|
||||
"%s\n" .
|
||||
"</head>\n" .
|
||||
"%s\n",
|
||||
$headinfo, $bodyinfo);
|
||||
if (defined($categoryNames{$k})) {
|
||||
printf(fp
|
||||
"<h1>%s</h1><hr>\n",
|
||||
$categoryNames{$k});
|
||||
} else {
|
||||
printf(stderr "WARNING: No category name for \"%s\"\n", $k);
|
||||
}
|
||||
printf(fp
|
||||
"There are currently no <b>describe</b>(1) entries in this ".
|
||||
"category.\n" .
|
||||
"%s\n", $tailinfo);
|
||||
close(fp);
|
||||
}
|
||||
}
|
177
describe/mkindex
Executable file
177
describe/mkindex
Executable file
@ -0,0 +1,177 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
# This script makes the index listing used sort describe entries by
|
||||
# category. It gets most of its information from where utilities
|
||||
# reside in the GNO ftp hierarchy.
|
||||
#
|
||||
# Devin Reade, January 1998
|
||||
#
|
||||
# $Id: mkindex,v 1.4 1999/07/03 16:55:42 gdr-ftp Exp $
|
||||
#
|
||||
|
||||
$dirroot = "/ftp/pub/apple2/gs.specific";
|
||||
$dirlist = "gno orca";
|
||||
$describe = '/usr/local/bin/describe';
|
||||
|
||||
# This is a list of describe entries which we want to force into a
|
||||
# given category. This should only be used when a utility doesn't have
|
||||
# an entry of its own in the .index.src files as a result of being
|
||||
# archived with another utility. For example, we fudge "descc" and
|
||||
# "descu" because they are archived in with "describe".
|
||||
|
||||
$fudgelist{"cclean"} = "gno/programming"; # with occ
|
||||
$fudgelist{"ccprep"} = "gno/programming"; # with occ
|
||||
$fudgelist{"cjpeg"} = "gno/graphics"; # part of jpeg tools
|
||||
$fudgelist{"djpeg"} = "gno/graphics"; # part of jpeg tools
|
||||
$fudgelist{"jpegtran"} = "gno/graphics"; # part of jpeg tools
|
||||
$fudgelist{"rdjpgcom"} = "gno/graphics"; # part of jpeg tools
|
||||
$fudgelist{"wrjpgcom"} = "gno/graphics"; # part of jpeg tools
|
||||
$fudgelist{"descc"} = "gno/doc.utils"; # with describe
|
||||
$fudgelist{"descu"} = "gno/doc.utils"; # with describe
|
||||
$fudgelist{"fortune"} = "gno/games"; # resolve fortuna-[abc]
|
||||
$fudgelist{"newuserv"} = "gno/sysadmin"; # with newuser
|
||||
# $fudgelist{""} = "";
|
||||
|
||||
# Actually, another possibility is that the file is not up for ftp in the
|
||||
# pre-packaged directories, but is rather part of the GNO base distribution.
|
||||
$fudgelist{"aroff"} = "gno/doc.utils";
|
||||
$fudgelist{"asml"} = "gno/programming";
|
||||
$fudgelist{"assemble"} = "gno/programming";
|
||||
$fudgelist{"aw30"} = "gno/doc.utils";
|
||||
$fudgelist{"binprint"} = "gno/editors";
|
||||
$fudgelist{"blist"} = "gno/editors";
|
||||
$fudgelist{"cal"} = "gno/games";
|
||||
$fudgelist{"cat"} = "gno/editors";
|
||||
$fudgelist{"center"} = "gno/text.utils";
|
||||
$fudgelist{"chtyp"} = "gno/file.manip";
|
||||
$fudgelist{"cksum"} = "gno/archive";
|
||||
$fudgelist{"cmp"} = "gno/text.utils";
|
||||
$fudgelist{"cmpl"} = "gno/programming";
|
||||
$fudgelist{"colcrt"} = "gno/doc.utils";
|
||||
$fudgelist{"compile"} = "gno/programming";
|
||||
$fudgelist{"ctags"} = "gno/programming";
|
||||
$fudgelist{"cu"} = "gno/network";
|
||||
$fudgelist{"df"} = "gno/sys";
|
||||
$fudgelist{"dial"} = "gno/network";
|
||||
$fudgelist{"duplex"} = "gno/network";
|
||||
$fudgelist{"eps"} = "gno/sys";
|
||||
$fudgelist{"expr"} = "gno/scripting";
|
||||
$fudgelist{"false"} = "gno/scripting";
|
||||
$fudgelist{"fmt"} = "gno/editors";
|
||||
$fudgelist{"ftp"} = "gno/network";
|
||||
$fudgelist{"gsh"} = "gno/shells";
|
||||
$fudgelist{"head"} = "gno/editors";
|
||||
$fudgelist{"help"} = "gno/doc.utils";
|
||||
$fudgelist{"inetd"} = "gno/network";
|
||||
$fudgelist{"init"} = "gno/daemons";
|
||||
$fudgelist{"kill"} = "gno/sys";
|
||||
$fudgelist{"link"} = "gno/programming";
|
||||
$fudgelist{"list"} = "gno/doc.utils";
|
||||
$fudgelist{"logger"} = "gno/scripting";
|
||||
$fudgelist{"login"} = "gno/daemons";
|
||||
$fudgelist{"lseg"} = "gno/programming";
|
||||
$fudgelist{"mkfs"} = "gno/sysadmin";
|
||||
$fudgelist{"mkso"} = "gno/sysadmin";
|
||||
$fudgelist{"phone"} = "gno/mail";
|
||||
$fudgelist{"pwd"} = "gno/sys";
|
||||
$fudgelist{"rcp"} = "gno/network";
|
||||
$fudgelist{"remote"} = "gno/network";
|
||||
$fudgelist{"removerez"} = "gno/file.convert";
|
||||
$fudgelist{"rlogin"} = "gno/network";
|
||||
$fudgelist{"rsh"} = "gno/network";
|
||||
$fudgelist{"rtf2text"} = "gno/file.convert";
|
||||
$fudgelist{"sed"} = "gno/editors";
|
||||
$fudgelist{"sendmail"} = "gno/mail";
|
||||
$fudgelist{"sleep"} = "gno/scripting";
|
||||
$fudgelist{"su"} = "gno/sysadmin";
|
||||
$fudgelist{"syslogd"} = "gno/daemons";
|
||||
$fudgelist{"sz"} = "gno/comm";
|
||||
# $fudgelist{"tr"} = "gno/text.utils";
|
||||
# $fudgelist{"trek"} = "gno/games";
|
||||
$fudgelist{"true"} = "gno/scripting";
|
||||
$fudgelist{"uniq"} = "gno/text.utils";
|
||||
$fudgelist{"uptimed"} = "gno/daemons";
|
||||
$fudgelist{"wc"} = "gno/text.utils";
|
||||
$fudgelist{"who"} = "gno/sys";
|
||||
$fudgelist{"whois"} = "gno/sys";
|
||||
$fudgelist{"yes"} = "gno/scripting";
|
||||
|
||||
#
|
||||
# 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};
|
||||
if ($s eq ':') {
|
||||
if (defined($fudgelist{$k})) {
|
||||
$s = ':' . $fudgelist{$k} . ':';
|
||||
} else {
|
||||
$s = ':unsorted:';
|
||||
$result = system("$describe $k > /dev/null") / 256;
|
||||
if ($result == 0) {
|
||||
printf(stderr
|
||||
"WARNING: '$k' is showing up as 'unsorted', but has ".
|
||||
"a describe(1) entry.\n\tThis probably means that the ".
|
||||
".index.src file is not using an\n\texisting".
|
||||
"describe entry.\n", $k);
|
||||
}
|
||||
}
|
||||
} elsif (defined($fudgelist{$k})) {
|
||||
printf(stderr
|
||||
"WARNING: %s should no longer be in the fudge list\n", $k);
|
||||
}
|
||||
printf("%s\t%s\n", $k, $s);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
32
describe/program.html
Normal file
32
describe/program.html
Normal file
@ -0,0 +1,32 @@
|
||||
<!-- $Id: program.html,v 1.2 1998/01/23 22:38:16 gdr-ftp 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/describe%%VERSION_SHORT%%.shk">
|
||||
ftp://ftp.gno.org/pub/apple2/gs.specific/gno/doc.utils/describe%%VERSION_SHORT%%.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 "source" 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
|
||||
"source" file.
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
Back to the <A HREF="gno/describe/index.html">Describe Database Page</A>.
|
||||
<p>
|
101
describe/submit.html
Normal file
101
describe/submit.html
Normal file
@ -0,0 +1,101 @@
|
||||
<!-- $Id: submit.html,v 1.4 1998/02/18 00:24:09 gdr-ftp 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>.
|
||||
<p>
|
||||
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 "describe" 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 "Name:" and
|
||||
"Shell:") 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 "Name:" 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
|
||||
followed by a newline. There newline may be preceeded by
|
||||
whitespace.
|
||||
<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 ".desc").
|
||||
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>
|
14
describe/tail.html
Normal file
14
describe/tail.html
Normal file
@ -0,0 +1,14 @@
|
||||
|
||||
<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@gno.org">gdr@gno.org</A>
|
||||
<p>
|
||||
|
||||
<img alt="Apple II Viewable Page" height=31 width=88 border=0
|
||||
src="icons/a2viewable.gif">
|
||||
<br>
|
||||
|
||||
</body>
|
||||
</html>
|
9
describe/template
Normal file
9
describe/template
Normal file
@ -0,0 +1,9 @@
|
||||
Name:
|
||||
Version:
|
||||
Shell:
|
||||
Author:
|
||||
Contact: -
|
||||
Where:
|
||||
FTP: ftp.gno.org
|
||||
|
||||
|
102
describe/view.html
Normal file
102
describe/view.html
Normal file
@ -0,0 +1,102 @@
|
||||
<!-- $Id: view.html,v 1.4 1999/07/03 16:55:42 gdr-ftp 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/crypto.html">Cryptography</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/gui.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">Patch Programs</A>.
|
||||
<li><A HREF="gno/describe/gen/productivity.html">Personal Productivity</A>
|
||||
(calculators, calendars, etc)
|
||||
<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.
|
||||
<li><A HREF="gno/describe/gen/unsorted.html">Unsorted</A>.
|
||||
These are utilities which have not yet been classified.
|
||||
</ul>
|
||||
|
||||
Back to the <A HREF="gno/describe/index.html">Describe Database Page</A>.
|
||||
<p>
|
Loading…
Reference in New Issue
Block a user