publish update.py
This commit is contained in:
parent
fca08d8b34
commit
90c68b0e3b
1 changed files with 41 additions and 7 deletions
44
update.py
44
update.py
|
|
@ -20,8 +20,10 @@ First time on a new PC (or just paste the install one-liner):
|
||||||
python eve_orehold_watcher.py --snip # one-time GUI step for OCR hold alerts
|
python eve_orehold_watcher.py --snip # one-time GUI step for OCR hold alerts
|
||||||
"""
|
"""
|
||||||
import configparser
|
import configparser
|
||||||
|
import glob
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
|
import socket
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
@ -208,6 +210,35 @@ def watchers_running():
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def running_scripts():
|
||||||
|
"""Which watcher scripts are actually running right now (by command line)."""
|
||||||
|
if not WIN:
|
||||||
|
return []
|
||||||
|
_, out = ps("Get-CimInstance Win32_Process -Filter \"Name='pythonw.exe'\" | "
|
||||||
|
"Select-Object -ExpandProperty CommandLine")
|
||||||
|
allw = WATCHER_SCRIPTS + ("eve_autoupdate.py",)
|
||||||
|
return [s for s in allw if s in (out or "")]
|
||||||
|
|
||||||
|
|
||||||
|
def announce(cfg_path):
|
||||||
|
"""Post a definitive install/update confirmation to Discord — always fires (not
|
||||||
|
deduped), so you can SEE the watchers came up and which ones are live."""
|
||||||
|
try:
|
||||||
|
import eve_orehold_watcher as w
|
||||||
|
cp = configparser.ConfigParser()
|
||||||
|
cp.read(cfg_path, encoding="utf-8-sig")
|
||||||
|
run_now = running_scripts()
|
||||||
|
short = ", ".join(s.replace("eve_", "").replace("_watcher.py", "").replace(".py", "")
|
||||||
|
for s in run_now) or "none"
|
||||||
|
host = socket.gethostname()
|
||||||
|
w._discord(cp, "🟢 eve-watcher updated",
|
||||||
|
f"On **{host}** — {len(run_now)} process(es) up: {short}.\n"
|
||||||
|
"Say `!mining on` to start the live feed (rock/hold/local/audio).")
|
||||||
|
print(f"announced: {len(run_now)} running — {short}")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"announce skipped: {e}")
|
||||||
|
|
||||||
|
|
||||||
def stop_watchers():
|
def stop_watchers():
|
||||||
# all of ours run as pythonw on an eve_*.py script (watchers + autoupdate poller)
|
# all of ours run as pythonw on an eve_*.py script (watchers + autoupdate poller)
|
||||||
_kill_scripts(("eve_",))
|
_kill_scripts(("eve_",))
|
||||||
|
|
@ -272,15 +303,18 @@ def main():
|
||||||
print("=== Eve watcher setup / auto-update ===")
|
print("=== Eve watcher setup / auto-update ===")
|
||||||
cfg, first = ensure_config()
|
cfg, first = ensure_config()
|
||||||
changed = update_code()
|
changed = update_code()
|
||||||
if changed or first:
|
deps() # ensure deps every explicit run (cheap if satisfied)
|
||||||
deps()
|
|
||||||
ensure_tesseract(cfg)
|
ensure_tesseract(cfg)
|
||||||
if changed or first or watchers_running() == 0:
|
# explicit run (installer/logon/daily) = clean restart + re-announce heartbeats
|
||||||
|
for hb in glob.glob(os.path.join(HERE, ".hb_*")):
|
||||||
|
try:
|
||||||
|
os.remove(hb)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
start_watchers(cfg)
|
start_watchers(cfg)
|
||||||
else:
|
|
||||||
print("• up to date and watchers already running — nothing to restart.")
|
|
||||||
ensure_logon_autostart()
|
ensure_logon_autostart()
|
||||||
ensure_daily_task()
|
ensure_daily_task()
|
||||||
|
announce(cfg) # definitive Discord confirmation of what's running
|
||||||
print("\nDone. Hands-off from here: it updates + keeps itself running automatically.")
|
print("\nDone. Hands-off from here: it updates + keeps itself running automatically.")
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue