#!/usr/bin/env python3 import re, subprocess t = open("/var/www/wifi-otantik/config.php").read() def g(k): m = re.search(r"\$" + k + r"\s*=\s*['\"]([^'\"]+)", t) return m.group(1) if m else "" host = g("db_host") or "localhost" user = g("db_user") pw = g("db_pass") name = g("db_name") def mysql(sql): r = subprocess.run( ["mysql", "-h", host, "-u", user, f"-p{pw}", name, "-e", sql], capture_output=True, text=True, ) out = r.stdout if r.returncode: out += r.stderr.replace(pw, "***") return out, r.returncode # Keep username=admin and existing (empty) password. Do not print secrets. sql = ( "UPDATE tbl_routers SET ip_address='10.88.0.6', ros_version='7', " "username='admin', pppoe_interface='bridge-hotspot' " "WHERE id=15 AND slug='otantik-hub'" ) out, code = mysql(sql) print("UPDATE", "OK" if code == 0 else out) print(mysql( "SELECT id,name,slug,owner_id,ip_address,username," "IF(password IS NULL OR password='', 'EMPTY', 'SET') AS pw," "ros_version,pppoe_interface,enabled,status " "FROM tbl_routers WHERE id=15" )[0]) print(mysql( "SELECT id,router_id,wg_ip,status,LEFT(public_key,16) AS pub_prefix " "FROM tbl_otantik_peers WHERE router_id=15" )[0])