Add archive age display, bump to 0.2.0#41
Merged
Conversation
Member
kbens
commented
Feb 13, 2026
- Show human-friendly age (Xm/Xh/Xd ago) next to archive backups in domain compare picker
- Bump version 0.1.0 → 0.2.0
kbens
added a commit
that referenced
this pull request
Feb 13, 2026
* Set help title to PSA-CLI with subtitle (#12) (#17) * Update ops command description (#13) (#18) * Remove trailing periods from CLI help text Standardize CLI help text by removing trailing periods across all Click command/option help strings * Fix missed trailing period in config compare help (#20) * Remove trailing periods from CLI help text * Fix missed trailing period in config compare help * Resilient discovery: skip permission errors, scope find_domain by type (#21) - Discovery methods now catch PermissionError per-domain instead of crashing entire list (e.g. PIA dirs with 750 perms no longer block app/prcs discovery) - find_domain() scopes to requested type, avoiding unnecessary discovery - _find_domain() in commands catches errors cleanly instead of raw traceback * Add SudoFileOps abstraction, refactor domain/psadmin to use centralized file operations (#22) * Fix demo lab findings: status parser, PIA paths, empty errors, PS path auto-detect (#24) F7: Add "is not started" pattern to status parser for app/prcs domains F9: Fallback message when psadmin returns empty output on stop/kill F3: PIA discovery uses config.xml for detection, globs DPK WAR path for properties F5: PRCS/PIA inline status checks filesystem markers instead of hardcoded unknown F1: Add ps_app_home/ps_cust_home to PsaConfig; auto-detect PS paths from runtime user env F4: Filed as #23 (deferred — needs design decision) * Fix status parser for tmadmin process table output (#25) psadmin on some servers returns raw tmadmin tables (BBL, PSAPPSRV, etc.) instead of summary "X processes running" lines. Detect BBL + "Prog Name" header as running indicator for app/prcs domains. Also reorder stopped checks before running checks so "is not started" can't accidentally match a running pattern. * Add "Started" as prcs running pattern (#26) psadmin returns just "Started" for running prcs domains on some servers. * Add global --quiet/--verbose flags and Rich spinners for domain commands (#27) - Verbosity enum + run_step() helper in output.py with spinner + checkmark UX - Global -q/-v flags in cli.py callback - Domain commands use run_step() for multi-step operations (bounce, reconfigure, restart) - Single-action commands (start/stop/configure/flush/purge/kill) wrapped in run_step() - status --verbose shows full output, list --verbose shows config columns - print_info/success/warning silenced in QUIET, print_error always prints - Remove unused --verbose from ops report, --quiet from dpk apply/data sync - New test_output.py covering verbosity and run_step behavior * Configure stops first, graceful already-stopped handling (#30) - configure now stops domain before configuring; add --restart to start after - Remove reconfigure (replaced by configure --restart) - stop/kill on already-stopped domains warn instead of failing - bounce/restart stop substeps only warn on real failures - Add _is_already_stopped() helper reusing status parser - Add skip_domain_confirm config field - Tests for all new behavior * Add warn_if to run_step for already-stopped domain warnings (#31) Show yellow ~ instead of red x when stop/kill fails on an already-stopped domain. Updated all 5 stop substep callers. * Add psa config set, always prompt in all-mode (#32) * Add warn_if to run_step for already-stopped domain warnings Show yellow ~ instead of red x when stop/kill fails on an already-stopped domain. Updated all 5 stop substep callers. * Add psa config set, always prompt in all-mode, show bypass hint * Add -q/--quiet and -v/--verbose to all domain subcommands (#33) * Graceful already-purged + summary only when multiple domains (#34) - Add _is_already_purged() helper: warn instead of fail when cache empty - Guard all 8 summary blocks with len(domains) > 1 to skip redundant ratio message for single-domain commands - Add tests for already-purged and single-domain-no-summary * Add warn_if to purge run_step for ~ icon on already-empty cache (#35) * Replace `psa domain drift` with `psa domain compare`, move set-env to ops (#36) - New `psa domain compare` command: local archive, --ops (API), --file modes - New `src/psa/core/compare.py`: archive listing, INI/properties parsing, diff - Add `get_latest_config()` to ApiClient - Move `set-env` from domain to `psa ops set-env` with proper ApiClient usage - Delete old drift command + tests, add compare + set-env tests * Fix compare: use RawConfigParser to handle %PS_SERVDIR% vars (#37) Real psappsrv.cfg contains %VAR% interpolation tokens that ConfigParser chokes on. RawConfigParser skips interpolation. * Show compared file name in no-diff output for clarity (#38) * Add interactive archive picker to domain compare (#39) (#39) Default mode shows numbered backup list, prompts user to select. --latest skips picker (old behavior). --json/--quiet imply --latest. --latest/--ops/--file now mutually exclusive. * Add archive age display, bump to 0.2.0 (#41) * Add human-friendly age display to archive backup selection * Bump version to 0.2.0
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.