.TH hackerbase 1 "hackerbase, May 26 2023" .SH "NAME" hackerbase - HackerSpace Members Database tool .SH "SYNOPSIS" .SY hackerbase .R [ .B \-h .R | .B \-license .R ] .YS .SY hackerbase .B \-info .OP \-mi id .OP \-mn nick .OP "OPTIONS ..." .YS .SY hackerbase .R [ .B \-print .R | .B \-blame .R | .B \-edit .R ] .R [ .B \-mi .R id | .B \-mn .R nick ] .OP "OPTIONS ..." .YS .SY hackerbase .R [ .B \-fees .R | .B \-problems .R | .B \-status .R | .B \-unpaired .R | .B \-idstats .R | .B \-genid .R | .B \-mlcheck .R | .B \-mlsync .R | .B \-notify .R | .B \-notify3 .R | .B \-summary .R ] .OP "OPTIONS ..." .YS .SH "ACTIONS" .TP .B \-h Display brief description of all actions and options. .TP .B \-license Show licensing terms. See \fBCOPYRIGHT\fR. .TP .B \-info With no member specified by neither \fB-mi\fR nor \fB-mn\fR display overall hackerbase information with organizational bodies memberships and lists of members of various statuses. When a member is specified, displays its information from the database, all identified bank transactions, membership information and a calendar showing current status of the member during given month. .TP .B \-print Prints given member file with errors and warnings highlighted. .TP .B \-blame Prints given member file annotated by the date of last change for each line with errors and warnings highlithed. .TP .B \-edit Starts text editor on given user member file. It uses the $EDITOR environment variable as user's editor preference. If this variable is unset, it uses whichever editor is found in $PATH under the name "editor". .TP .B \-fees Prints a table listing all existing members and their balance with respect to paying their membership fees. If the \fB\-destroyed\fR option is provided then even destroyed members are included. .TP .B \-problems Checks all member records for problems and if any are found, print for each of them the information table (like \fB\-info\fR for one member) and annotated and highlighted member file source. .TP .B \-status Show members directory git repository status. Used for checking whether there are untracked and/or uncommitted changes. .TP .B \-unpaired Display a table with unpaired bank transactions with ID greater than the last id that was manually checked. See \fB\-checked\fR option. .TP .B \-idstats Returns information about used and available member IDs. .TP .B \-genid Generates a valid member id that is not used yet. .TP .B \-mlcheck Check internal mailinglist membership. All members - including suspended ones - should be subscribed this mailinglist. No other emails should be subscribed to it. .TP .B \-mlsync Like \fB\-mlcheck\fR but automatically ensuring the subscriptions are according to the specification. .TP .B \-notify Send notification to all members with debt greater than for one month. .TP .B \-notify3 Send notification to all members with debt greater than for three months. .TP .B \-summary Send weekly summary email for the Council. It includes expected monthly income based on current members counts, table with unpaired transactions (see \fB\-unpaired\fR), table with active members with debt greater than for three months (see \fB\-notify3\fR) and a table with all other active members and their membership fees balances. .SH "OPTIONS" .TP .B \-config \fRfname Initial configuration file name - should be a full path. See \fBCONFIGURATION\fR for more information. .TP .B \-members \fRdir Members base directory with all members files. See \fBFILES\fR for more information. The value read from configuration file can be overriden by this option. .TP .B \-month \fRYYYY-MM Specify current month to see the situation at particular point in time - usually in the past. It also sets the current day to the 1st day of the specified month. .TP .B \-today \fRYYYY-MM-DD Specify current day as with previous option. This does not affect the computation of membership fees and payments. It does however affect the organizational bodies membership or other members properties recorded with day precision. .TP .B \-tstyle \fR[ debug | ascii | unicode ] Use given style for table borders and separators. Defaults to "unicode". .TP .B \-apikey \fRfname File with Fio API keys. See \fBFILES\fR for more information. The value read from configuration file can be overriden by this option. .TP .B \-bankdir \fRdir Directory for storing bank account statement CSV files. The value read from configuration file can be overriden by this option. A working "parts/" subdirectory is created by bank account statements downloader (hb_fetch_fio) in this directory for the purpose of handling incremental account statement downloads from the bank. .TP .B \-checked \fRfile File containing the ID of the latest known incoming bank transaction across all bank account statements. The value read from configuration file can be overriden by this option. This file is used for the \fB\-unpaired\fR action. .TP .B \-from \fRemail Specify sender email address. The value read from configuration file can be overriden by this option. .TP .B \-sendmail Actually send emails for all email-sending actions. Without this option, the email headers and body is only printed to standard output. .TP .B \-mailto \fRemail Override all outgoing emails destination. Can be used for testing what the recipients actually receive by sending notifications to different email address and check whether the contents of the email are really as required. .TP .B \-logfile \fRfilename Enable logging to file. Mainly useful for running from cron. Adds timestamps to log messages. .TP .B \-quiet Suppress all progress output. .TP .B \-mi \fRid Specify member by ID. .TP .B \-mn \fRnick Specify member by nickname. .TP .B \-destroyed Show destroyed members in \fB-fees\fR action as well. .TP .B \-ml-all Load all mailman list memberships to show them in members info. .SH "FILES" All the information about members is stored in in members file in the members directory which is also a git repository. Bank account statements are stored for each year separately for the purpose of updating the data from the bank and merged together for processing. Last checked bank transaction ID is stored in the checked transaction file. .SS Member Files .SS Bank Account Statements The CSV files with bank account statements are stored in the directory specified "bank-dir" key in \fBCONFIGURATION\fR or given as command-line option \fB-bankdir\fR. In the directory with bank account statements a subdirectory named "parts/" is maintained which contains the account statements for distinct years and only those which need an update are downloaded regularly. Any account statement for particular year is considered as up-to-date if it has been downloaded on January 2nd or later the following year. The format of the files is the same as the format provided by the Fio bank API. .SS Last Checked Transaction ID File .SH "CONFIGURATION" it is in /etc/hackerbase .SH "EXAMPLES" .SH "COPYRIGHT" Copyright (c) 2023 Brmlab, z.s. .MT dominik.pantucek@trustica.cz Dominik Pantůček .ME .B ISC License Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .SH "AUTHOR" Dominik Pantůček