# Development notes These are the development notes for the Go version. The idea is to use the help files to implement BULLETIN. ssh `authorized_keys` should look like this: ``` command="/home/bulletin/bin/bulletin -u alice",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty KEY-TYPE KEY ``` Have readline store a history file for the user. Configure at the `accounts.Open` step. Look up how godoc does references to other things. Look up how to run migrations on the db from embedded files. Figure out readline completion. Case sensitive - issue? Building from repl.commands? sqlite trigger tracing: `.trace stdout --row --profile --stmt --expanded --plain --close` ## Things to do * Implement each command. * Next: folder commands - ~~CREATE~~, ~~REMOVE~~, MODIFY, ~~INDEX~~, ~~SELECT~~ * Messages: ADD, CURRENT, DIRECTORY, BACK, CHANGE, FIRST, REMOVE, NEXT, READ * Messages edit: CHANGE, REPLY, FORWARD * Moving messages: COPY, MOVE * Mail: MAIL, FORWARD, * Editor - need an embedded editor * An EDT inspired [editor](https://sourceforge.net/projects/edt-text-editor/) * [gkilo](https://github.com/vcnovaes/gkilo) * This [kilo editor](https://viewsourcecode.org/snaptoken/kilo/) tutorial * Cleanup help output. * Remove the node/cluster/newsgroup/mailing-list related flags. * Database * trigger to limit values for 'visibility'? * Add some of the early announcements from the sources - see the conversion branch - to the GENERAL folder. * Add commands: * A way to add / delete ssh keys. * A way to manage files? * Commands for a local mail system? * Commands to connect to Mattermost or mastodon? * Commands to manage users. ## Module links * cli - [docs](https://cli.urfave.org/v3/getting-started/) * readline - [docs](https://pkg.go.dev/github.com/chzyer/readline) * xdg - [docs](https://pkg.go.dev/github.com/adrg/xdg) * sqlite - [docs](https://modernc.org/sqlite)