Developer-Dashboard
view release on metacpan or search on metacpan
lib/Developer/Dashboard.pm view on Meta::CPAN
C<dashboard path add foobar .> followed by C<dashboard of foobar 456.txt>, now
resolve the exact configured or scoped file target directly.
The hashed C<state_root>, C<collectors_root>, C<indicators_root>, and
C<sessions_root> paths live under the shared temp state tree, not inside the
layered runtime config tree. If a reboot or temp cleanup removes one of those
hashed state roots, the path registry recreates it automatically the next time
dashboard code resolves the path and rewrites the matching F<runtime.json>
metadata file before collectors, indicators, or sessions use it again.
Use C<dashboard which E<lt>targetE<gt>> to inspect what C<dashboard> would
execute before you run it. The command prints one
C<COMMAND /full/path> line for the resolved file and then one
C<HOOK /full/path> line for each participating hook in runtime execution
order. That works for built-in helpers such as C<jq>, layered custom commands
such as C<layered-tool>, single-level skill commands such as
C<example-skill.somecmd>, and multi-level nested skill commands such as
C<nest.level1.level2.here>. If you add C<--edit>, C<dashboard which> skips the
inspection output and re-enters C<dashboard open-file> with the resolved
command file path so the normal editor-selection behavior is reused.
Render shell bootstrap for bash, zsh, POSIX sh, or PowerShell:
dashboard shell bash
dashboard shell zsh
dashboard shell sh
dashboard shell ps
The generated zsh bootstrap now loads C<compinit> before any C<compdef>
registration, so a fresh macOS zsh shell can evaluate it without raising
C<command not found: compdef>.
Audit runtime permissions:
dashboard doctor
dashboard doctor --fix
Resolve or open files from the CLI:
dashboard of --print My::Module
dashboard open-file --print com.example.App
dashboard open-file --print javax.jws.WebService
dashboard of --print notes
dashboard of --print . 'Ok\.js$'
dashboard of --print foobar 456.txt
dashboard open-file --print path/to/file.txt
dashboard open-file --print bookmarks api-dashboard
Query structured files from the CLI:
printf '{"alpha":{"beta":2}}' | dashboard jq alpha.beta
printf 'alpha:\n beta: 3\n' | dashboard yq alpha.beta
printf '[alpha]\nbeta = 4\n' | dashboard tomq alpha.beta
printf 'alpha.beta=5\n' | dashboard propq alpha.beta
dashboard jq file.json '$d'
Start the local app:
dashboard serve
Open the root path with no bookmark path to get the free-form bookmark editor directly. If you start the web service with C<dashboard serve --no-editor> or C<dashboard serve --no-endit>, the browser stays read-only instead and direct editor/source ro...
Stop the local app and collector loops:
dashboard stop
Interactive terminal runs now print a task board on C<stderr> first, then
mark each stop step as it finishes so the command does not appear hung while
the runtime waits for managed shutdown.
Restart the local app and configured collector loops:
dashboard restart
Interactive terminal runs now print the full restart task board on C<stderr>,
mark the active step with a yellow C<->, mark completed steps with a green
C<[OK]>, mark failed steps with a red C<[X]>, and keep the final JSON result
on C<stdout>. Stop and restart shutdown paths send numeric POSIX signals
instead of named signal strings, so minimal Alpine/iSH Perl builds that reject
C<TERM> by name still terminate managed web and collector processes correctly.
Create a helper login user:
dashboard auth add-user <username> <password>
Remove a helper login user:
dashboard auth remove-user helper
Helper sessions show a Logout link in the page chrome. Logging out removes both
the helper session and that helper account. Helper page views also show the
helper username in the top-right chrome instead of the local system account.
Exact-loopback admin requests do not show a Logout link.
=head2 Working With Pages
Create a starter page document:
dashboard page new sample "Sample Page"
Save a page:
dashboard page new sample "Sample Page" | dashboard page save sample
List saved pages:
dashboard page list
Render a saved page:
dashboard page render sample
C<dashboard page render> now uses the same page-runtime preparation path as
the browser route, so saved bookmark TT such as C<[% title %]> and
C<[% stash.foo %]> is rendered there too instead of only working under
C</app/E<lt>idE<gt>>.
Encode and decode transient pages:
dashboard page show sample | dashboard page encode
dashboard page show sample | dashboard page encode | dashboard page decode
( run in 2.080 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )