Testing for OS before decided what group to assign to binary and
files. If Linux, both groups are 'root'. If OpenBSD, the groups
are 'bin' and 'wheel'. I don't have a FreeBSD or NetBSD system
handy right now to check those.
If a user places a file at $HOME/.hushclinte, they will not be
notified of new posts on login.
Moved check logic to a function. Test if .hushclinte exists. If
it doesn't, run the announce function (check_clinte).
Also fixed a shellcheck error - unquoted variable expansion.
Changed string literals to single-quotes.
If it contains flags, split by whitespace and pass them in as arguments
to std::process::Command. Otherwise, just pass it in as normal. This was
causing a panic/abort.
removes dependency on sha2 crate and allows users
to choose their own hashing algorithm easily.
now copies clinte.json to $HOME/.clinte.json once
the posts are viewed. a shellscript can be used to
compare the hash of the global clinte.json to the
hash of the copy. an example script is supplied.
on `make install` the example script is installed
to /etc/profile.d/, where it will be run for users
on login.
sqlite3 requires the directory where the database resides to be
writeable by the user. This presents a problem on multiuser UNIX systems
where they may want to limit areas where users have write access.
This rewrite totally scraps the sqlite3 database in favor of a pretty
simple json file consisting of an array of posts. flock(2) locking is
used to synchronize access to the file and make sure two clients aren't
trying to write to it at once. The locking is fairly granular right now,
but later I may change it to using a single lock for the duration of
execution since race conditions are *possible*, if unlikely for the
purposes of clinte's intended use.