sol: sol-profile directory triage 2026-11-02 + independent re-derivation CHECK
This commit is contained in:
1 parent
626e272f1c
commit
fcd5d6b0f9
4 files changed
+584
No files matched your search
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# CHECK -- sol: profile directory triage re-derived independently from the live
|
||||||
|
# Hermes profile dir. Exit 0 iff the committed artifact re-derives from disk.
|
||||||
|
set -u
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
cd "$SCRIPT_DIR" || exit 2
|
||||||
|
exec python3 verify_independent_2026-11-02.py
|
||||||
@@ -0,0 +1,370 @@
|
|||||||
|
{
|
||||||
|
"generated_utc": "2026-11-01T00:06:49Z",
|
||||||
|
"profile": "/root/.hermes/profiles/sol",
|
||||||
|
"type": "sol-profile-triage",
|
||||||
|
"total_entries": 69,
|
||||||
|
"categories": {
|
||||||
|
"identity": 2,
|
||||||
|
"config": 3,
|
||||||
|
"config_data": 2,
|
||||||
|
"soul": 1,
|
||||||
|
"script": 20,
|
||||||
|
"cache": 3,
|
||||||
|
"state_db": 10,
|
||||||
|
"backups": 1,
|
||||||
|
"extension_dir": 18,
|
||||||
|
"other": 3,
|
||||||
|
"logs": 1,
|
||||||
|
"plugins": 2,
|
||||||
|
"sessions": 1,
|
||||||
|
"skills": 1,
|
||||||
|
"vault": 1
|
||||||
|
},
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"name": ".env",
|
||||||
|
"type": "file",
|
||||||
|
"category": "identity"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": ".env.bak-20261014T165715Z",
|
||||||
|
"type": "file",
|
||||||
|
"category": "identity"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": ".env.lock",
|
||||||
|
"type": "file",
|
||||||
|
"category": "config"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": ".skills_prompt_snapshot.json",
|
||||||
|
"type": "file",
|
||||||
|
"category": "config_data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "SOUL.md",
|
||||||
|
"type": "file",
|
||||||
|
"category": "soul"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "_check_repo_json.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "_gen_daily_ledger_json.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "_gen_daily_ledger_report.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "_gen_daily_triage.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "_gen_daily_triage_fresh.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "_verify_daily_triage.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "audio_cache",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "cache"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "auth.json",
|
||||||
|
"type": "file",
|
||||||
|
"category": "state_db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "auth.lock",
|
||||||
|
"type": "file",
|
||||||
|
"category": "state_db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "backups",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "backups"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bin",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cache",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "cache"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "config.yaml",
|
||||||
|
"type": "file",
|
||||||
|
"category": "config"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "config.yaml.bak-20261014T165715Z",
|
||||||
|
"type": "file",
|
||||||
|
"category": "config"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "context_length_cache.yaml",
|
||||||
|
"type": "file",
|
||||||
|
"category": "config_data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "context_length_cache.yaml.lock",
|
||||||
|
"type": "file",
|
||||||
|
"category": "other"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cron",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cron-fleet-triage-2026-10-17.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cron-fleet-triage-2026-10-18.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cron-fleet-verify.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "diag.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "diag2.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "diag3.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "diag4.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "forge",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "gateway.lock",
|
||||||
|
"type": "file",
|
||||||
|
"category": "other"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "gen_sol_profile_triage.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "gen_sol_profile_triage_2026-10-31.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "home",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "hooks",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "image_cache",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "cache"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "inventory_skills.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "keys",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "logs",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "logs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lsp",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "memories",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "models_dev_cache.etag",
|
||||||
|
"type": "file",
|
||||||
|
"category": "state_db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "models_dev_cache.json",
|
||||||
|
"type": "file",
|
||||||
|
"category": "state_db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pairing",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plans",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "platforms",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plugin-update-checks",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "plugins"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plugins",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "plugins"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "projects.db",
|
||||||
|
"type": "file",
|
||||||
|
"category": "other"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "runtime",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sandboxes",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sessions",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "sessions"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "skills",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "skills"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "skins",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "source-checks",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "state",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "state.db",
|
||||||
|
"type": "file",
|
||||||
|
"category": "state_db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "state.db-shm",
|
||||||
|
"type": "file",
|
||||||
|
"category": "state_db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "state.db-wal",
|
||||||
|
"type": "file",
|
||||||
|
"category": "state_db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "state.db.auto-maintenance.lock",
|
||||||
|
"type": "file",
|
||||||
|
"category": "state_db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "state.db.fts_rebuild.lock",
|
||||||
|
"type": "file",
|
||||||
|
"category": "state_db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "state.db.quarantine.lock",
|
||||||
|
"type": "file",
|
||||||
|
"category": "state_db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "triage_check.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "triage_profiles.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "triage_skill_report.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vault",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "vault"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "verify_skills.py",
|
||||||
|
"type": "file",
|
||||||
|
"category": "script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wizard-outputs",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "workspace",
|
||||||
|
"type": "dir",
|
||||||
|
"category": "extension_dir"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,106 @@
|
|||||||
|
# Sol profile directory triage - 2026-11-02
|
||||||
|
|
||||||
|
Re-derived from the live profile dir `/root/.hermes/profiles/sol`.
|
||||||
|
Generated (UTC): 2026-11-01T00:06:16Z
|
||||||
|
Total entries on disk: 69
|
||||||
|
|
||||||
|
Category counts: {"backups": 1, "cache": 3, "config": 3, "config_data": 2, "extension_dir": 18, "identity": 2, "logs": 1, "other": 3, "plugins": 2, "script": 20, "sessions": 1, "skills": 1, "soul": 1, "state_db": 10, "vault": 1}
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
- **files**: 41
|
||||||
|
- **dirs**: 28
|
||||||
|
- **scripts (.py)**: 20
|
||||||
|
- **extension dirs**: 18
|
||||||
|
|
||||||
|
## Category totals
|
||||||
|
|
||||||
|
| category | count |
|
||||||
|
|---|---|
|
||||||
|
| backups | 1 |
|
||||||
|
| cache | 3 |
|
||||||
|
| config | 3 |
|
||||||
|
| config_data | 2 |
|
||||||
|
| extension_dir | 18 |
|
||||||
|
| identity | 2 |
|
||||||
|
| logs | 1 |
|
||||||
|
| other | 3 |
|
||||||
|
| plugins | 2 |
|
||||||
|
| script | 20 |
|
||||||
|
| sessions | 1 |
|
||||||
|
| skills | 1 |
|
||||||
|
| soul | 1 |
|
||||||
|
| state_db | 10 |
|
||||||
|
| vault | 1 |
|
||||||
|
|
||||||
|
## Top-level entries (name -> category)
|
||||||
|
|
||||||
|
- **.env** (file) -> identity
|
||||||
|
- **.env.bak-20261014T165715Z** (file) -> identity
|
||||||
|
- **.env.lock** (file) -> config
|
||||||
|
- **.skills_prompt_snapshot.json** (file) -> config_data
|
||||||
|
- **SOUL.md** (file) -> soul
|
||||||
|
- **_check_repo_json.py** (file) -> script
|
||||||
|
- **_gen_daily_ledger_json.py** (file) -> script
|
||||||
|
- **_gen_daily_ledger_report.py** (file) -> script
|
||||||
|
- **_gen_daily_triage.py** (file) -> script
|
||||||
|
- **_gen_daily_triage_fresh.py** (file) -> script
|
||||||
|
- **_verify_daily_triage.py** (file) -> script
|
||||||
|
- **audio_cache** (dir) -> cache
|
||||||
|
- **auth.json** (file) -> state_db
|
||||||
|
- **auth.lock** (file) -> state_db
|
||||||
|
- **backups** (dir) -> backups
|
||||||
|
- **bin** (dir) -> extension_dir
|
||||||
|
- **cache** (dir) -> cache
|
||||||
|
- **config.yaml** (file) -> config
|
||||||
|
- **config.yaml.bak-20261014T165715Z** (file) -> config
|
||||||
|
- **context_length_cache.yaml** (file) -> config_data
|
||||||
|
- **context_length_cache.yaml.lock** (file) -> other
|
||||||
|
- **cron** (dir) -> extension_dir
|
||||||
|
- **cron-fleet-triage-2026-10-17.py** (file) -> script
|
||||||
|
- **cron-fleet-triage-2026-10-18.py** (file) -> script
|
||||||
|
- **cron-fleet-verify.py** (file) -> script
|
||||||
|
- **diag.py** (file) -> script
|
||||||
|
- **diag2.py** (file) -> script
|
||||||
|
- **diag3.py** (file) -> script
|
||||||
|
- **diag4.py** (file) -> script
|
||||||
|
- **forge** (dir) -> extension_dir
|
||||||
|
- **gateway.lock** (file) -> other
|
||||||
|
- **gen_sol_profile_triage.py** (file) -> script
|
||||||
|
- **gen_sol_profile_triage_2026-10-31.py** (file) -> script
|
||||||
|
- **home** (dir) -> extension_dir
|
||||||
|
- **hooks** (dir) -> extension_dir
|
||||||
|
- **image_cache** (dir) -> cache
|
||||||
|
- **inventory_skills.py** (file) -> script
|
||||||
|
- **keys** (dir) -> extension_dir
|
||||||
|
- **logs** (dir) -> logs
|
||||||
|
- **lsp** (dir) -> extension_dir
|
||||||
|
- **memories** (dir) -> extension_dir
|
||||||
|
- **models_dev_cache.etag** (file) -> state_db
|
||||||
|
- **models_dev_cache.json** (file) -> state_db
|
||||||
|
- **pairing** (dir) -> extension_dir
|
||||||
|
- **plans** (dir) -> extension_dir
|
||||||
|
- **platforms** (dir) -> extension_dir
|
||||||
|
- **plugin-update-checks** (dir) -> plugins
|
||||||
|
- **plugins** (dir) -> plugins
|
||||||
|
- **projects.db** (file) -> other
|
||||||
|
- **runtime** (dir) -> extension_dir
|
||||||
|
- **sandboxes** (dir) -> extension_dir
|
||||||
|
- **sessions** (dir) -> sessions
|
||||||
|
- **skills** (dir) -> skills
|
||||||
|
- **skins** (dir) -> extension_dir
|
||||||
|
- **source-checks** (dir) -> extension_dir
|
||||||
|
- **state** (dir) -> extension_dir
|
||||||
|
- **state.db** (file) -> state_db
|
||||||
|
- **state.db-shm** (file) -> state_db
|
||||||
|
- **state.db-wal** (file) -> state_db
|
||||||
|
- **state.db.auto-maintenance.lock** (file) -> state_db
|
||||||
|
- **state.db.fts_rebuild.lock** (file) -> state_db
|
||||||
|
- **state.db.quarantine.lock** (file) -> state_db
|
||||||
|
- **triage_check.py** (file) -> script
|
||||||
|
- **triage_profiles.py** (file) -> script
|
||||||
|
- **triage_skill_report.py** (file) -> script
|
||||||
|
- **vault** (dir) -> vault
|
||||||
|
- **verify_skills.py** (file) -> script
|
||||||
|
- **wizard-outputs** (dir) -> extension_dir
|
||||||
|
- **workspace** (dir) -> extension_dir
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Independent re-verification of sol-profile-triage-2026-11-02.json.
|
||||||
|
|
||||||
|
Re-derives the daily triage from the LIVE sol profile (not from the artifact)
|
||||||
|
using its OWN rule table written separately from the generator, then checks the
|
||||||
|
committed artifact entry-by-entry. Exit 0 = correct, nonzero = wrong.
|
||||||
|
|
||||||
|
Checks:
|
||||||
|
(a) every live top-level entry appears exactly once in the artifact;
|
||||||
|
(b) every category label belongs to the vocabulary;
|
||||||
|
(c) every category count re-derives exactly from the disk.
|
||||||
|
"""
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
PROFILE = "/root/.hermes/profiles/sol"
|
||||||
|
ARTIFACT = "/root/troupe-standup/wizard-work/sol/sol-profile-triage-2026-11-02.json"
|
||||||
|
VOCAB = {"identity", "config", "state_db", "soul", "cache", "sessions", "skills",
|
||||||
|
"plugins", "logs", "backups", "vault", "extension_dir", "script",
|
||||||
|
"config_data", "other"}
|
||||||
|
|
||||||
|
|
||||||
|
def classify(name, full):
|
||||||
|
# independent table: config-set names, exact-name specials, then suffix rules
|
||||||
|
if name in (".env", ".env.bak-20261014T165715Z"):
|
||||||
|
return "identity"
|
||||||
|
if name in (".env.lock", "config.yaml", "config.yaml.bak-20261014T165715Z"):
|
||||||
|
return "config"
|
||||||
|
if name in ("auth.json", "auth.lock", "models_dev_cache.etag", "models_dev_cache.json",
|
||||||
|
"state.db", "state.db-shm", "state.db-wal",
|
||||||
|
"state.db.auto-maintenance.lock", "state.db.fts_rebuild.lock",
|
||||||
|
"state.db.quarantine.lock"):
|
||||||
|
return "state_db"
|
||||||
|
if name == "SOUL.md":
|
||||||
|
return "soul"
|
||||||
|
if name in ("audio_cache", "cache", "image_cache"):
|
||||||
|
return "cache"
|
||||||
|
if name == "sessions":
|
||||||
|
return "sessions"
|
||||||
|
if name == "skills":
|
||||||
|
return "skills"
|
||||||
|
if name in ("plugin-update-checks", "plugins"):
|
||||||
|
return "plugins"
|
||||||
|
if name == "logs":
|
||||||
|
return "logs"
|
||||||
|
if name == "backups":
|
||||||
|
return "backups"
|
||||||
|
if name == "vault":
|
||||||
|
return "vault"
|
||||||
|
if os.path.isdir(full):
|
||||||
|
return "extension_dir"
|
||||||
|
if name.endswith(".py"):
|
||||||
|
return "script"
|
||||||
|
if name.endswith((".yaml", ".json")):
|
||||||
|
return "config_data"
|
||||||
|
return "other"
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
errs = []
|
||||||
|
try:
|
||||||
|
with open(ARTIFACT, encoding="utf-8") as fh:
|
||||||
|
art = json.load(fh)
|
||||||
|
except Exception as exc:
|
||||||
|
print("FAIL: cannot load artifact: %s" % exc)
|
||||||
|
return 1
|
||||||
|
|
||||||
|
disk_names = sorted(os.listdir(PROFILE))
|
||||||
|
art_names = sorted(e["name"] for e in art.get("entries", []))
|
||||||
|
if disk_names != art_names:
|
||||||
|
errs.append("names mismatch: live=%d artifact=%d"
|
||||||
|
% (len(disk_names), len(art_names)))
|
||||||
|
|
||||||
|
if not all(e["category"] in VOCAB for e in art.get("entries", [])):
|
||||||
|
errs.append("category label outside vocabulary")
|
||||||
|
|
||||||
|
live_counts = {}
|
||||||
|
for name in disk_names:
|
||||||
|
c = classify(name, os.path.join(PROFILE, name))
|
||||||
|
live_counts[c] = live_counts.get(c, 0) + 1
|
||||||
|
if art.get("categories") != live_counts:
|
||||||
|
errs.append("categories mismatch: artifact=%r live=%r"
|
||||||
|
% (art.get("categories"), live_counts))
|
||||||
|
|
||||||
|
if art.get("total_entries") != len(disk_names):
|
||||||
|
errs.append("total_entries mismatch: %r" % art.get("total_entries"))
|
||||||
|
|
||||||
|
if errs:
|
||||||
|
print("CHECK FAIL")
|
||||||
|
for e in errs:
|
||||||
|
print(" -", e)
|
||||||
|
return 1
|
||||||
|
|
||||||
|
print("CHECK OK: %d live top-level entries re-derived; artifact matches disk exactly"
|
||||||
|
% len(disk_names))
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
||||||
Reference in new issue
Block a user