Config Backup/Restore for the FLDIGI Suite =========================================== Backs up and restores settings/preferences for: FLDIGI, FLRIG, FLMSG, FLAMP, JS8Call, JS8Spotter, SitRepMapper so they don't have to be reconfigured by hand after a fresh install or a move to a new machine/OS image. This is a sibling project to install-sitrepnet-suite.sh, which installs these same seven programs. Settings only -- not logbook/message data ------------------------------------------ This tool captures configuration only. It does NOT capture: - FLDIGI's ADIF logbook (~/.fldigi/logs/logbook.adif) - FLDIGI's contest data files (~/.fldigi/data/) - JS8Call's message logs and inbox (~/.local/share/JS8Call/ALL.TXT, DIRECTED.TXT, inbox.db3) `backup` prints these files' locations at the end so you can copy them by hand if you want your operating history to follow you too. What gets captured ------------------- FLDIGI ~/.fldigi/fldigi.prefs ~/.fldigi/fldigi_def.xml (operator info: callsign, grid, name, QTH) ~/.fldigi/fldigi_UI_colors.colors ~/.fldigi/frequencies2.txt ~/.fldigi/macros/ (your net-control macro scripts, recursive) FLRIG ~/.flrig/flrig.prefs ~/.flrig/.prefs (whichever rig is configured) FLMSG ~/.nbems/FLMSG.prefs FLAMP ~/.nbems/FLAMP/FLAMP.prefs JS8Call ~/.config/JS8Call.ini JS8Spotter ~/src/fldigi-suite/js8spotter/js8spotter.db (only found at install-sitrepnet-suite.sh's default install location -- a custom --build-dir= install won't be picked up) SitRepMapper ~/.config/sitrepmapper/ (recursive: config.json, plus your areas, flags, and logged reports -- areas.areas.json, flags.flags.json, reports.reports.json) Stock/default files (FLDIGI's palettes, per-mode UI state) and debug/trace logs are intentionally skipped -- they're either shipped defaults or noise, not settings worth carrying between machines. A file that doesn't exist on the current machine (program never configured, or not installed) is skipped with a note, not an error. Usage ----- chmod +x configbakrestore.sh ./configbakrestore.sh backup [--only=NAME[,NAME...]] [--outdir=DIR] ./configbakrestore.sh restore [--only=NAME[,NAME...]] ./configbakrestore.sh -h | --help NAME is one of: fldigi, flrig, flmsg, flamp, js8call, js8spotter, sitrepmapper backup ~~~~~~ Zips the settings files above into a single timestamped archive: configbakrestore__.zip written to the current directory by default (override with --outdir=DIR). Prints what was included, what was skipped (not found), and the data-file-locations reminder. restore ~~~~~~~ Extracts a zip made by `backup` back into place. If a file already exists at the destination, it's moved aside first (suffixed .bak-) rather than being overwritten outright, so a restore is never destructive. Serial port caveat (JS8Call) ------------------------------ FLRIG stores its rig's serial port as a persistent by-id path (/dev/serial/by-id/usb-...), which is safe to copy between machines with the same radio/cable. JS8Call, however, stores it as a plain /dev/ttyUSBn, which can point at the wrong device on a different machine. `restore` writes JS8Call.ini back as-is and prints a reminder to re-check Settings > Radio in JS8Call afterward -- there's no automatic detection or substitution. Database path caveat (SitRepMapper) -------------------------------------- SitRepMapper's config.json remembers an absolute path to the JS8Spotter database it last opened (`last_db_path`). This is restored as-is, so if JS8Spotter ends up installed somewhere different on the new machine (or wasn't restored at all), reopen it from SitRepMapper's own file picker. Options ------- --only=NAME[,NAME...] Limit backup or restore to the named program(s) instead of all seven. --outdir=DIR (backup only) Where to write the zip. Default: current directory. -h, --help Show usage