1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
# brisket
`brisket` is a primitive newsreader script, capable of fetching posts and
posting to NNTP servers. It's dead simple and lacks any sort of fancy TUI,
opting instead for an interface inspired by the Unix philosophy: posts are read
from stdin, and are written either to stdout or to text files in a directory.
You _probably_ don't want to use it in its current state.
## Installation
`brisket` is self-contained and depends only on Hy core and the Python standard
library. Provided that both Hy and Python are installed, you should be able to
invoke `brisket` in the following ways.
```sh
$ chmod u+x brisket.hy
# Install globally.
$ cp brisket.hy /usr/local/bin/brisket
# Or
# I'd rather just run it from the repository.
$ ./brisket.hy
```
## Usage
Running `brisket` without any arguments will give a list of recognized commands.
```sh
$ brisket
usage: /home/jakob/.bin/brisket [command] [args]
recognized commands:
- describe-group
- help
...
```
The documentation for any command can be obtained with the `help` command.
```sh
$ brisket help describe-group
Describe the first group matching the pattern.
usage: describe-groups [pattern]
```
### Configuration
Upon running `brisket` for the first time, a default configuration file will be
written to `$HOME/.config/brisket/config.ini`. The hostname for the NNTP server
you wish to connect to can be specified here. Alternatively, the hostname can be
specified with the `$NNTPSERVER` environment variable.
Currently, the only way to specify credentials for authenticating with the NNTP
server is with a line in `.authinfo.gpg`. See
[here](https://www.emacswiki.org/emacs/GnusAuthinfo) for more information.
### Exploration
A list of groups available on the server can be obtained with the `list-groups`
command.
```sh
$ brisket list-groups
control
control.cancel
control.checkgroups
control.newgroup
control.rmgroup
junk
orbitalfox
orbitalfox.test
...
```
Descriptions, if available, can be obtained with the `describe-group` command.
```sh
$ brisket describe-group junk
Unfiled articles (no posting).
```
### Reading
Posts can be fetched with the `fetch-posts` command. Without any additional
arguments, this will fetch *every* post on the server, which probably isn't what
you want. You can specify a specific group and article ID to fetch.
Additionally, if "-" is in the argument list, the article will be printed to
stdout.
### Posting
Posts can be posted with the `post-article` command.
## Why the name?
I couldn't come up with a better name, and there's little in the world that
makes me happier than a smoked brisket.
```
________
< Uhm... >
--------
\ ^__^
\ (oo)\\_______
(__)\\ )\\/\\
||----w |
|| ||
```
|