gdris

A toy gopher client written in Idris2

git clone https://git.8pit.net/gdris.git

 1# gdris
 2
 3A toy [gopher][rfc1436] client written in [Idris2][idris web].
 4
 5![GIF demonstrating gdris usage](https://gist.github.com/nmeum/b7e9986fff26ada4667c1887ff99ee3e/raw/f428c01ce5fd54c63adba482d63a8430a4abfbce/gdris.gif)
 6
 7## Building
 8
 9This software requires a working [idris2][idris2 github] installation.
10So far, it has only been tested with `v0.3.0` which is the most recent
11version at the time of writing. After installing idris2, compile this
12software using the following command:
13
14	$ idris2 --build gdris.ipkg
15
16This will create an executable in `./build/exec/gdris`.
17
18## Usage
19
20The `gdris` program expects a `HOST` and `PORT` argument and starts an
21interactive read–eval–print loop (REPL) afterwards. For example, to
22connect to the `sdf.org` gopherhole start `gdris` as follows:
23
24	$ ./build/exec/gdris sdf.org 70
25
26This will print a menu for the initial directory listing on `sdf.org`.
27Each menu entry will have an associated numeric identifier. The `goto`
28command can be used to retrieve a specific document or to navigate to a
29subdirectory. The `goto` command expects a numeric menu entry identifier
30as an argument. The currently available menu entries can be retrieved
31using the `menu` command.
32
33## License
34
35This program is free software: you can redistribute it and/or modify it
36under the terms of the GNU General Public License as published by the
37Free Software Foundation, either version 3 of the License, or (at your
38option) any later version.
39
40This program is distributed in the hope that it will be useful, but
41WITHOUT ANY WARRANTY; without even the implied warranty of
42MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
43Public License for more details.
44
45You should have received a copy of the GNU General Public License along
46with this program. If not, see <http://www.gnu.org/licenses/>.
47
48[rfc1436]: https://tools.ietf.org/html/rfc1436
49[idris web]: https://idris-lang.org
50[idris2 github]: https://github.com/idris-lang/Idris2