Skip to content

Version 2.4.0 - Interactive mode, show unique/duplicate sizes, live timer, clear console; rework output - #6

Merged
VoltKraft merged 10 commits into
mainfrom
WIP
Oct 31, 2025
Merged

VoltKraft merged 10 commits into
mainfrom
WIP

Conversation

@VoltKraft

Copy link
Copy Markdown
Owner

Improves UX and clarity of results.
Adds absolute size metrics for unique and duplicate chunk references.
Shows a live runtime timer and clears the console on start.
Updates README and bumps version.
Changes

PBS_Chunk_Checker.py
Add clear_console() and call on startup.
Add format_elapsed() and show a live ⏱️ timer in progress lines.
Compute and display absolute sizes for unique and duplicate refs.
Rework summary: Unique → Duplicate → Total with counts, percentages, sizes.
Reorder header lines: Path to datastore → Chunk path → Search path.
Remove trailing “Searched object” line.
Keep “Total size” as real unique on-disk usage; add total references logical size in summary.
Bump version to 2.4.0.
README.md
Update version text to 2.4.0.
Refresh output example for new order, live timer, and summary metrics.
Add “Output Details” section describing new behavior.
Output Example

📁 Path to datastore: /mnt/datastore/MyDatastore
📦 Chunk path: /mnt/datastore/MyDatastore/.chunks
📁 Search path: /mnt/datastore/MyDatastore/ns/MyNamespace

💾 Saving all used chunks
📄 Index 75/75 | ⏱️ 02m 15s
➕ Summing up chunks
📦 Chunk 12450/12450 | 🧮 Size so far: 1.23TiB | ⏱️ 12m 09s

🧮 Total size: 1356782934123 Bytes (1.23TiB)
⏱️ Evaluation duration: 12m 10s
🧩 Chunk usage summary:
Unique chunks : 8505 (9.59%) | 12.2GiB
Duplicate refs : 80186 (90.41%) | 186.2GiB
Total references : 88692 (198.4GiB)
How To Test

Run script mode:
./PBS_Chunk_Checker.py --datastore MyDatastore --searchpath /ns/MyNamespace
Run interactive mode:
./PBS_Chunk_Checker.py and pick datastore + path.
Verify:
Console clears at start.
Header order: datastore → chunk path → search path.
Progress lines show a live ⏱️ timer; chunk progress shows size so far.
Final duration uses compact format (e.g., 12m 10s).
Summary shows unique/duplicate/total with counts, percentages, and sizes.
./PBS_Chunk_Checker.py --version prints 2.4.0.
Optional: --no-emoji shows ASCII labels.
Compatibility Notes

CLI and behavior unchanged; output formatting is improved.
If downstream tools parse the old summary format, they may need minor updates.
Files Touched

PBS_Chunk_Checker.py
README.md

Define version = 2.1.0 in PBS_Chunk_Checker.py
Expose version via argparse --version
Update README: show current version and document new flag in parameters
Clarify CLI syntax and examples with new flags
Split usage into “Local execution” and “Portable execution”
Add wget-based streaming example (no file left on disk)
Note that portable mode always fetches the latest version
Include syntax and concrete examples for common paths
Add interactive mode triggered when no args are provided
Datastore selection (list + manual)
Directory browser for selecting search path
Standardize CLI to use only --searchpath (remove typo alias)
Bump version to 2.2.0
Update README:
Reorganize usage: script mode, interactive mode, portable
Add portable examples for both modes
Clarify parameters are required only in script mode
SECURITY.md: add supported versions (best‑effort), reporting channels, response targets (no SLA), scope, Safe Harbor, handling sensitive info, and disclaimer with non‑professional notice
CONTRIBUTING.md: add contribution guidelines, PR rules (stdlib‑only, small scope), dev setup, style notes, commit guidance, and licensing
Clarify single‑maintainer nature; no bug bounty/commercial support
Improve get_datastore_path to robustly resolve PBS datastore path
Handle JSON and text modes with check=False and exit code checks
Capture and display stderr/stdout on failure for clearer diagnostics
Emit clear error and exit (status 1) if datastore does not exist
Interactive mode cleanly handles SystemExit during datastore resolution
Result: Supplying a non-existent datastore prints a helpful error and stops processing.
Add ensure_required_tools() to verify proxmox-backup-manager and proxmox-backup-debug availability; exit with clear guidance if missing
Validate datastore path exists and is a directory in both interactive and non-interactive flows
Clamp invalid --workers (<= 0) to default with a clear error message
Normalize uppercase digests; improve parsing robustness and localize proxmox-backup-debug errors
Catch OSError in stat_size_if_exists and log concise warnings
Add --no-emoji flag with ASCII icon fallback; route all output through icon map
Improve user-facing messages and consistency; keep outputs and docs in English
Update README: document --no-emoji, tool prerequisites, and behavior changes
Update __version__ in PBS_Chunk_Checker.py
Update “Current version” badge in README.md
Print absolute sizes alongside counts/percentages for unique and duplicate chunks
Reformat summary: Unique → Duplicate → Total
Add live runtime to index and chunk progress lines; compact final duration
Clear console at startup for clean output
Reorder header lines: Path to datastore → Chunk path → Search path
Remove trailing “Searched object” line
Update README: new output example, “Output Details” section, version text
Bump version to 2.4.0 and align README version
Minor helpers: add clear_console() and format_elapsed()
@VoltKraft
VoltKraft merged commit e13430a into main Oct 31, 2025
3 checks passed
@VoltKraft
VoltKraft deleted the WIP branch October 31, 2025 20:54

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Repository owner deleted a comment from chatgpt-codex-connector Bot Oct 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant