From c3b2badec294b3dcfba1ae5eeb781e70a5182aa8 Mon Sep 17 00:00:00 2001
From: KatolaZ <katolaz@freaknet.org>
Date: Thu, 24 Jan 2019 00:29:16 +0000
Subject: [PATCH] add README and LICENSE

---
 LICENSE   |  14 ++++++
 README.md | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 138 insertions(+)
 create mode 100644 LICENSE
 create mode 100644 README.md

diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..9bdf344
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,14 @@
+Copyright 2018-2019 Vincenzo 'KatolaZ' Nicosia <katolaz@freaknet.org>
+          2018 Solene Rapenne <solene@bsd.org>
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..924a1f3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,124 @@
+   gophed: burrowing the gopherspace with ed
+===============================================
+
+`gophed` is a simple gopher client in a POSIX shell script. `gophed`
+uses ed(1) as a pager and navigator, and is based on an original idea of
+an ed-based client by Solene Rapenne (gopher://bitreich.org/1/usr/solene/).
+
+`gophed` is distributed under the ISC License. A copy of the LICENSE is
+available in the repo.
+ 
+The first time you run `gophed` you need to initialise it via:
+
+  ./gophed -i
+
+This will create a few symlinks in the current folder, namely `g`, `v`,
+and `d`,  which will be used as `gophed` commands. Once `gophed` has
+been initialised, you can start visiting some gopherholes:
+
+  ./gophed / kalos.mine.nu 70
+
+or equivalently:
+
+  ./v / kalos.mine.nu 70
+
+This command will download the corresponding resource, and print it on
+output with line numbers. An excerpt is reported below:
+
+...
+15      i+------------------------------------------+   Err     kalos.mine.nu   70
+16      i    Welcome to kalos.mine.nu Gopher-hole       Err     kalos.mine.nu   70
+17      i+------------------------------------------+   Err     kalos.mine.nu   70
+18      0 About me      /me.txt kalos.mine.nu   70
+19      0 About this gopherhole /about.txt      kalos.mine.nu   70
+20      1 Contacts      /contacts       kalos.mine.nu   70
+21      i                       Err     kalos.mine.nu   70
+22      1 My gopherhole @SDF    /users/katolaz  sdf.org 70
+23      1 My gopherhole @republic.circumlunar.space     /~katolaz/      republic.circumlunar.space      70
+24      1 My Phlog @republic.circumlunar.space  /~katolaz/phlog republic.circumlunar.space      70
+25      i+------------------------------------------+   Err     kalos.mine.nu   70
+26      i                  Projects                     Err     kalos.mine.nu   70
+27      i+------------------------------------------+   Err     kalos.mine.nu   70
+28      1 Burrow the Burrows (crawling the Gopherspace) /burrow/index.gph       kalos.mine.nu   70
+29      1 gosher -- a Gopher server in a shell script   /software/gosher        kalos.mine.nu   70
+...
+=
+
+The final "=" is the `gophed` default prompt. No need to say that you
+can change the default prompt to any single character by changing the
+PROMPT variable. Now, if you want to visit the selector at line 23, you
+would type:
+
+  !./g % 24 [ENTER]
+
+at the prompt. This will effectively spawn another `gophed` instance,
+telling it to get the selector at line 23 in the current document, and
+to load the corresponding resource. In this case we will have something
+like:
+
+1       i    ________            ____                                           Err     republic.circumlunar.space      70
+2       i   /_  __/ /_  ___     / __ \_      ______ _______   _____  ____       Err     republic.circumlunar.space      70
+3       i    / / / __ \/ _ \   / / / / | /| / / __ `/ ___/ | / / _ \/ __ \      Err     republic.circumlunar.space      70
+4       i   / / / / / /  __/  / /_/ /| |/ |/ / /_/ / /   | |/ /  __/ / / /      Err     republic.circumlunar.space      70
+5       i  /_/ /_/ /_/\___/  /_____/ |__/|__/\__,_/_/    |___/\___/_/ /_/       Err     republic.circumlunar.space      70
+6       i       Err     republic.circumlunar.space      70
+7       i         ____  __           __                  _ __  __       Err     republic.circumlunar.space      70
+8       i        / __ )/ /___ ______/ /___________ ___  (_) /_/ /_      Err     republic.circumlunar.space      70
+9       i       / __  / / __ `/ ___/ //_/ ___/ __ `__ \/ / __/ __ \     Err     republic.circumlunar.space      70
+10      i      / /_/ / / /_/ / /__/ ,< (__  ) / / / / / / /_/ / / /     Err     republic.circumlunar.space      70
+11      i     /_____/_/\__,_/\___/_/|_/____/_/ /_/ /_/_/\__/_/ /_/      Err     republic.circumlunar.space      70
+12      i       Err     republic.circumlunar.space      70
+13      i+------------------------------------------------------------------+   Err     republic.circumlunar.space      70
+14      i   "their swords were forged by dwarves, in the mists of time..."      Err     republic.circumlunar.space      70
+15      i+------------------------------------------------------------------+   Err     republic.circumlunar.space      70
+16      i       Err     republic.circumlunar.space      70
+17      0 About this phlog      /~katolaz/phlog/about.txt       republic.circumlunar.space      70
+18      i       Err     republic.circumlunar.space      70
+.....
+26      i+------------------------------------------------------------------+   Err     republic.circumlunar.space      70
+27      1 << Back to my gopherhole      /~katolaz/      republic.circumlunar.space      70
+28      .
+=
+
+Well, if you want now to go to the resource at line 17, you would type: 
+
+  !./g % 17 [ENTER]
+
+when you are done with viewing the current resource, you just type:
+
+  q [ENTER]
+
+at the `gophed` prompt (well, that one is indeed ed(1) prompt...), and
+you will be back at the gopher resources you had visited before. Typing 
+
+  q [ENTER]
+
+again will bring you back in history again. If you give a `q` command on
+the first page, you will leave `gophed`. If you would instead like to
+save the resource pointed by a selector, you will use the command:
+
+  !./d % NUMBER [ENTER]
+
+where NUMBER is the number of the line where the selector appears in the
+current page. The resource will be saved at "HOSTNAME/URI" where
+HOSTNAME is the name of the host and URI is the path to the resource.
+If you don't remember which line is which, you can just give:
+
+  %n [ENTER]
+
+at the prompt. If you don't remember which resource you are currently
+visiting, typing: 
+
+ f [ENTER]
+
+at the `gophed` prompt will give some hints. If you are an ed(1) user,
+you will totally understand what we are up to here, and probably will
+now have a good laugh. If you don't know how to use ed(1), instead, then
+this is probably the right time to start learning it. Remember: ed(1) is
+the standard editor, and an awesome one at that...
+
+HND
+
+KatolaZ
+
+