Simple note-posting system for shared UNIX boxes
Go to file
creme 25dbb94f7e
Merge remote-tracking branch 'upstream/master'
2021-10-24 11:17:51 +02:00
assets new screenshot 2019-09-04 17:59:24 -04:00
src let's actually set the file permissions this time 2021-10-24 02:24:48 -04:00
.build.yml switching from a full build to 'cargo check' in CI 2020-07-03 19:40:48 -04:00
.drone.yml .drone.yml: fix env path usage 2020-05-27 08:47:49 +02:00
.gitignore init 2019-08-27 00:17:02 -04:00
.travis.yml switching from a full build to 'cargo check' in CI 2020-07-03 19:40:48 -04:00
Cargo.lock version bump to 2.1.4 2020-07-03 19:54:19 -04:00
Cargo.toml version bump to 2.1.4 2020-07-03 19:54:19 -04:00
LICENSE MIT -> ISC 2019-09-07 02:25:21 -04:00
Makefile moved makefile install target to shellscript 2020-07-03 19:14:51 -04:00
README.md added sr.ht info to readme 2020-06-16 23:38:48 -04:00
check_new_clinte_posts.sh allow per-user suppression of clinte notifications 2020-07-02 19:02:45 -04:00
clinte.1 corrected post subject stated max length in man page 2020-07-03 18:15:45 -04:00
clinte.json more testing 2020-05-28 03:31:43 -04:00
install.sh explicit test if /etc/profile.d is a directory rather than for the 2020-07-03 19:49:33 -04:00

README.md

clinte   builds.sr.ht status Build Status codecov

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, calls nano
  • Stores posts in JSON
  • Uses advisory locking via flock(2) to synchronize access to the posts file

Screenshot

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