Files
MoFin/archive/hermes-dead-tools-20260820/check_missing_scripts.py
T
xxm c68f987653 chore(cleansweep): 代码大扫除——归档hermes 111个死工具+4个废弃scanner,收敛MoFin/scripts重复副本,删除根旧版mo_models
- archive/hermes-dead-tools-20260820/: hermes独有不在cron不被import的111个一次性排查/测试工具
- archive/hermes-dead-tools-20260820/: 4个废弃scanner(btd1_v3/market_scanner/market_thermometer已废弃/s2v2)
- archive/legacy-cleanup-20260820/: MoFin根2旧版(mo_models/technical_analysis)+/home/hmo/scripts无引用旧项目+MoFin/scripts重复prepare_report_data
- 删除MoFin根mo_models.py(根旧版,deploy/profile-scripts权威保留)
- 保留: mofin_db.py/mo_data.py硬链接(server.py多层sys.path需各目录访问同一inode,非冗余)
- fix_gateway.py保留(Gateway看门狗fix_gateway_port.py的活跃依赖,勿误删)
- 验证: cron所有脚本引用无缺失, key模块import正常
- hermes独有从116收敛到5核心(alert_logger/market_screener/prepare_report_data/self_todo_executor_v2/xmpp_zhiwei_bot)
2026-08-20 10:36:25 +08:00

31 lines
1.2 KiB
Python

import os
files = ['meta_growth.py', 'macro_context_collector.py', 'divergence_detector.py',
'memory_guardian.py', 'fix_gateway_port.py']
d = '/home/hmo/.hermes/profiles/position-analyst/scripts/'
for f in files:
p = os.path.join(d, f)
if os.path.islink(p):
target = os.readlink(p)
ok = os.path.exists(p)
print(f"{f} -> symlink -> {target} [{'OK' if ok else 'BROKEN'}]")
elif os.path.exists(p):
print(f"{f} -> real file")
else:
print(f"{f} -> MISSING")
print()
print('=== deploy/profile-scripts candidates ===')
deploy = '/home/hmo/MoFin/deploy/profile-scripts/'
for f in os.listdir(deploy):
if any(k in f for k in ['meta_growth', 'macro_context', 'divergence', 'memory_guardian', 'fix_gateway']):
print(' ', f)
print()
print('=== search whole MoFin for the 5 scripts ===')
import subprocess
for f in files:
r = subprocess.run(['find', '/home/hmo/MoFin', '/home/hmo/projects', '-name', f,
'-not', '-path', '*/venv/*'], capture_output=True, text=True, timeout=30)
found = [l for l in r.stdout.splitlines() if l.strip()]
print(f"{f}: {found if found else 'NOT FOUND'}")