Various Tools for interacting with Beancount commands and files in the Perl language
Find a file
Bradley M. Kuhn 8349b9610b
Only server should control fifo; client should wait for it to clear
On the a classic “concurrency is hard” front, I am slightly proud of
myself that I didn't hit this race condition but anticipated that it
might occur later.  Giving entire control to fifoName to the server
makes more sense here, and the client should not submit its query any
time either fifoName or question is set.

As an extra safeguard, the client will die if it gets the lock and
the state for submitting a query isn't right.

Finally, added some fifoName removal debugging on the server.
2020-06-15 16:29:53 -07:00
AGPL-3.0.txt GNU Affero General Public License 3.0 as published by the FSF 2020-06-15 12:06:34 -07:00
bean-query-daemon-lib.pl Only server should control fifo; client should wait for it to clear 2020-06-15 16:29:53 -07:00
bean-query-goofy-daemon.plx Only server should control fifo; client should wait for it to clear 2020-06-15 16:29:53 -07:00
COPYRIGHT Add copyright information for this repository. 2020-06-15 12:48:05 -07:00
LICENSE LICENSE of this project is AGPL-3.0-or-later. 2020-06-15 12:47:50 -07:00
README.md bean-query daemon: initial version. 2020-06-15 14:26:31 -07:00

Beancount Tools Written in Perl

These are various tools written in Perl to interact with Beancount project.

bean-query-goofy-daemon.plx

This daemon uses Perl's IPC::Shareable library to take queries as a daemon for Beancount's bean-query. Note that this daemon is not particularly secure, as it has the same security flaws inherent in IPC::Shareable and use of named pipes (as it uses mkfifo from Perl's POSIX library underneath.

bean-query-daemon-lib.pl

This file defines three functions to use in client scripts that want to talk to bean-query-goofy-daemon.plx.

It's not an actual Perl library; just use require in Perl to load it.

[comment]: Local variables: [comment]: mode: markdown [comment]: eval: (visual-line-mode t) [comment]: eval: (auto-fill-mode -1) [comment]: End: