#!/bin/bash # Generate data/peers/generated/peers.json — drives the /peers WebUI page and # is also read by the /backup/migrate tab to overlay friendly names on top of # bare hostnames. # # This is just peerList wrapped with a generated_at envelope; no extra logic. webuiGeneratePeers() { local output_dir="$containers_dir/libreportal/frontend/data/peers/generated" local output_file="$output_dir/peers.json" runFileOp mkdir -p "$output_dir" local generated_at generated_at=$(date -Iseconds) local peers peers=$(peerList 2>/dev/null) [[ -z "$peers" ]] && peers='[]' # Pipe the JSON straight through runFileWrite — the previous # `cat > "$temp_file"` redirect failed because $temp_file sits in the # dockerinstall-owned data/ tree and the manager can't open it for write. # The mv that followed then errored with "No such file or directory". runFileWrite "$output_file" </dev/null || true }