NAME
Developer::Dashboard::InternalCLI - private runtime helper executable management
SYNOPSIS
use Developer::Dashboard::InternalCLI;
my $paths = Developer::Dashboard::PathRegistry->new(home => $ENV{HOME});
Developer::Dashboard::InternalCLI::ensure_helpers(paths => $paths);
DESCRIPTION
This module manages the built-in private helper executables that Developer Dashboard stages under ~/.developer-dashboard/cli/dd/ instead of exposing as global system commands.
FUNCTIONS
helper_names, helper_aliases, canonical_helper_name, helper_content, helper_path, ensure_helpers
Build and seed the built-in private helper command files.
PURPOSE
This module owns the dashboard-managed private helper assets. It decides which built-in command names exist, stages the corresponding helper files under ~/.developer-dashboard/cli/dd/, and resolves the helper paths that the public dashboard entrypoint should exec into.
WHY IT EXISTS
It exists because built-in helper staging is a product contract of its own. The switchboard must know which helpers are dashboard-managed and how to refresh them without mixing that policy into every command or shell bootstrap path.
WHEN TO USE
Use this file when adding, renaming, or removing built-in helper commands, when changing the private helper namespace, or when fixing helper staging drift between shipped assets and the home runtime copy.
HOW TO USE
Call ensure_helpers with the active paths object to stage or refresh managed helpers, use canonical_helper_name to normalize helper aliases, and use helper_path when the switchboard needs the final staged executable path.
WHAT USES IT
It is used by bin/dashboard, by init/update flows that stage built-ins, by shell bootstrap generation, and by tests that verify helper extraction and private-helper packaging.
EXAMPLES
Example 1:
perl -Ilib -MDeveloper::Dashboard::InternalCLI -e 1
Do a direct compile-and-load check against the module from a source checkout.
Example 2:
prove -lv t/07-core-units.t t/21-refactor-coverage.t
Run the focused regression tests that most directly exercise this module's behavior.
Example 3:
HARNESS_PERL_SWITCHES=-MDevel::Cover prove -lr t
Recheck the module under the repository coverage gate rather than relying on a load-only probe.
Example 4:
prove -lr t
Put any module-level change back through the entire repository suite before release.