mirror of
https://github.com/thetechprepper/emcomm-tools-os-community.git
synced 2026-09-17 15:41:44 -04:00
56 lines
1.6 KiB
Bash
Executable File
56 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Author : Gaston Gonzalez
|
|
# Date : 29 November 2025
|
|
# Updated : 1 December 2025
|
|
# Purpose : Generates a denormalized Winlink RMS channel data set from
|
|
# Pat Winlink's JSON definition. Each line represents a single
|
|
# Winlink RMS channel. This generated file is the source for
|
|
# building the Winlink search index.
|
|
source /opt/emcomm-tools/bin/et-common
|
|
|
|
RMS_SRC_JSON_FILE=~/.local/share/pat/rmslist.json
|
|
RMS_DATA_OUT_FILE=/opt/emcomm-tools-api/data/rmslist.csv
|
|
RMS_INDEX_DIR=/opt/emcomm-tools-api/index/rmslist
|
|
|
|
# Return a denormalized list of RMS stations filtered by the supported
|
|
# Winlink modes in EmComm Tools Community.
|
|
#
|
|
# 0 Packet 1200
|
|
# 41 ARDOP 500
|
|
# 43 ARDOP 2000
|
|
# 50 VARA 2300 (HF standard)
|
|
# 51 VARA FM
|
|
# 52 VARA FM WIDE
|
|
# 53 VARA 500 (HF narrow)
|
|
# 54 VARA 2750 (HF tactical)
|
|
|
|
cat ${RMS_SRC_JSON_FILE} | jq -r '
|
|
.Gateways[]
|
|
| . as $gw
|
|
| $gw.GatewayChannels[]
|
|
| select(.Mode | IN(0, 41, 43, 50, 51, 52, 53, 54))
|
|
| [
|
|
$gw.BaseCallsign,
|
|
$gw.Callsign,
|
|
$gw.Latitude,
|
|
$gw.Longitude,
|
|
.SupportedModes,
|
|
.Mode,
|
|
.Frequency
|
|
]
|
|
| join("|")
|
|
' > ${RMS_DATA_OUT_FILE}
|
|
|
|
LINES=$(wc -l $RMS_DATA_OUT_FILE | awk '{print $1}')
|
|
echo "Created RMS dataset: ${RMS_DATA_OUT_FILE} with ${LINES} records."
|
|
|
|
echo "Stopping ET API..."
|
|
systemctl --user stop et-service-et-api
|
|
|
|
sleep 3
|
|
echo "Removing old Winlink index..."
|
|
[[ -e ${RMS_INDEX_DIR} ]] && rm -rf /opt/emcomm-tools-api/index/rmslist
|
|
|
|
# ET API will rebuild the Winlink index on startup. It takes a few seconds.
|
|
start_and_wait_for_service et-service-et-api
|