clinte
Command-line community notice board for public-access UNIX systems. Post text-only notes for other users to see.
Features
- Username is tagged based on the executing user
- Shows the 15 most recent posts in descending order
- Able to edit or delete your own posts
- Title <= 30 chars
- Body <= 500 chars
- Calls
$EDITOR
when creating or modifying the body of a post - If
$EDITOR
is unset, callsnano
- Stores posts in JSON
- Uses advisory locking via
flock(2)
to synchronize access to the posts file
Installation
Clone the repository and jump into the directory:
$ git clone git://github.com/gbmor/clinte.git
...
$ cd clinte
Run the makefile and install:
$ make
...
...Done!
$ sudo make install
Upgrading
Note: v1.0.0 used sqlite3, which presented some issues. v2.x uses a json structure for posts,
as this will be safer on a multi-user system. When upgrading from v1.0.0 to v2.x, you won't be
able to save the posts without using a third-party tool to dump the posts
table to json, and
manually adjusting it to fit the expected format (which can be seen in the included clinte.json
).
If upgrading from v1.0.0 -> v2.x, do a fresh install, including removing the database directory
/usr/local/clinte
. The following applies to upgrading when already running at least v2.0.0
$ make update
$ make
$ make install
This will:
- checkout
master
- pull / rebase changes from upstream
- checkout the latest tag
- rebuild
- replace the
clinte
binary, but leave the posts file untouched.
Usage
Issuing the program name itself will list the currently available posts, like in the screenshot above.
Display recent posts
$ clinte
Create a post
$ clinte post
clinte
will then ask for the title of the post, and the body. The username will be
tagged automatically by your logged-in username, reflecting its intended use on
multi-user UNIX-like systems.
Edit a post
$ clinte update [id]
If the [id]
argument is absent, clinte
will ask for the ID number of the post.
If it's been authored by you, then you will be asked for the new title.
Your $EDITOR
will be called, and will be populated with the previous body.
Delete a post
$ clinte delete [id]
If the [id]
argument is absent, clinte
asks for the numeric ID of the post to delete.
Verbose logging
$ clinte -v [post|update|delete] [id]
Use this flag if something's going wrong. Additional information will be written to `/tmp/clinte_$USER.log** that will, hopefully, reveal the cause of the error.
Line Wrapping
$ clinte -l 80
Wraps posts at the given line length. Set to <10 to disable line wrapping. Defaults to 80.
Notes
The file where the posts are stored, /usr/local/clinte/clinte.json
, must be writeable by all
users on the system. Keep this in mind.
The main project is at sr.ht/~gbmor/clinte, with a mirror at github.com/gbmor/clinte. Please send patches to ~gbmor/clinte@lists.sr.ht. For more info on this workflow, check out git send-email