#amateur-radio #adif #cloudlog

nightly app cloudlog-adifwatch

Automatic upload of ADIF log to Cloudlog

20 releases

0.0.20 Mar 10, 2025
0.0.18 Feb 16, 2023
0.0.17 Jan 1, 2023
0.0.16 Nov 1, 2022
0.0.6 Mar 29, 2021

#193 in Command line utilities

Download history 2/week @ 2024-12-04 14/week @ 2024-12-11 5/week @ 2025-01-08 10/week @ 2025-02-05 47/week @ 2025-02-12 2/week @ 2025-02-19 20/week @ 2025-02-26 103/week @ 2025-03-05 54/week @ 2025-03-12 9/week @ 2025-03-19

186 downloads per month

CC0 license

15KB
177 lines

Synopsis

This tool watches an ADIF log file for changes using the native filesystem notification mechanism and uploads it to a Cloudlog instance through the QSO API.

Usage

On Linux systems the recommended way to use this tool is through the provided systemd unit. It should be installed to ~/.config/systemd/user/, the URL of the Cloudlog instance adjusted appropriately and then started with systemctl --user start cloudlog-adifwatch.service. To start it automatically when the user logs in, enable it with systemctl --user enable cloudlog-adifwatch.service.

By default the systemd unit expects the Cloudlog API key to be available in a file at ~/.config/cloudlog-adifwatch/key.txt, uses station profile ID 1 and watches the WSJT-X ADIF log file at ~/.local/share/WSJT-X/wsjtx_log.adi. These paths can be adjusted as needed in the unit file.

Alternatively, this tool can be started manually.

Example

cloudlog-adifwatch https://fernschreibstelle.de ~/.config/cloudlog-adifwatch/key.txt 1 ~/.local/share/WSJT-X/wsjtx_log.adi

Implementation notes

The log is split into chunks of one ore more complete records which are then uploaded individually. Partial writes to the log file are handled gracefully and only complete records are uploaded.

The log file is kept open for reading and assumed to be appended to only. Truncation of the log file or overwriting of data already written to the log file will likely result in undesired behaviour.

Intellectual property

This work is dedicated to the public domain under the terms of the CC0 1.0 licence.

The author holds no patent rights related to this work.

Dependencies

~18–29MB
~513K SLoC