#!/usr/bin/env python3
import os, shutil, subprocess, sys
from pathlib import Path
VERSION="1.0.1"
APP="Sentinel Password Vault"
BIN="sentinel-password-vault"
USER_HOME=Path.home()
paths = [
    Path('/usr/bin')/BIN,
    Path('/usr/local/bin')/BIN,
    USER_HOME/'.local/bin'/BIN,
    Path('/root/.local/bin')/BIN,
]
print(f"{APP} Doctor v{VERSION}")
print("="*54)
print(f"Running as root: {hasattr(os,'geteuid') and os.geteuid()==0}")
print(f"User home: {USER_HOME}")
active = shutil.which(BIN)
print(f"Active command: {active or 'NOT FOUND'}")
if active:
    try:
        out = subprocess.check_output([active,'--version'], text=True, stderr=subprocess.STDOUT, timeout=5).strip()
    except Exception as e:
        out = f"ERROR: {e}"
    print(f"Active version: {out}")
print("\nCommand copies:")
for p in paths:
    print(f" - {p}: {'FOUND' if p.exists() else 'missing'}")
print("\nLaunchers/icons:")
launchers = [
    Path('/usr/share/applications/sentinel-password-vault.desktop'),
    USER_HOME/'.local/share/applications/sentinel-password-vault.desktop',
    USER_HOME/'Desktop/Sentinel Password Vault.desktop',
    USER_HOME/'desktop/Sentinel Password Vault.desktop',
]
for p in launchers:
    print(f" - {p}: {'FOUND' if p.exists() else 'missing'}")
icons = [Path('/usr/share/icons/hicolor/64x64/apps/sentinel-password-vault.png'), Path('/usr/share/icons/hicolor/128x128/apps/sentinel-password-vault.png'), Path('/usr/share/icons/hicolor/256x256/apps/sentinel-password-vault.png'), Path('/usr/share/icons/hicolor/512x512/apps/sentinel-password-vault.png'), Path('/usr/share/pixmaps/sentinel-password-vault.png')]
for p in icons:
    print(f" - {p}: {'FOUND' if p.exists() else 'missing'}")
print("\nUser data paths:")
for p in [USER_HOME/'.local/share/sentinel-password-vault', USER_HOME/'.local/share/sentinel-password-vault/backups', USER_HOME/'.local/state/sentinel-password-vault', USER_HOME/'.config/sentinel-password-vault']:
    print(f" - {p}: {'FOUND' if p.exists() else 'missing'}")
print("\nRoot data shadows:")
for p in [Path('/root/.local/share/sentinel-password-vault'), Path('/root/.config/sentinel-password-vault'), Path('/root/.local/state/sentinel-password-vault')]:
    print(f" - {p}: {'FOUND - REVIEW/CLEAN' if p.exists() else 'missing'}")
print("\nSuggested repair flow:")
print(" sudo sentinel-password-vault-repair <username>")
print(" sentinel-password-vault-user-setup --clean-shadow")
print(" hash -r && sentinel-password-vault --version && sentinel-password-vault --self-check")
