#!/usr/bin/env perl

use strict;
use warnings;

use FindBin qw($Bin);
use lib "$Bin/../lib";

use Developer::Dashboard::CLI::Query qw(run_query_command);

# main(@ARGV)
# Runs the Java properties query command for Developer Dashboard.
# Input: command-line arguments from @ARGV and optional STDIN.
# Output: prints the selected properties value, then exits.
run_query_command( command => 'propq', args => \@ARGV );

__END__

=pod

=head1 NAME

propq - Java properties query command for Developer Dashboard

=head1 SYNOPSIS

  dashboard propq [path] [file]

=head1 DESCRIPTION

This command provides Java properties query extraction for Developer Dashboard.

=for comment FULL-POD-DOC START

=head1 PURPOSE

This staged helper owns the public C<dashboard propq> command. It accepts an
optional Java-properties key path or C<$d>-based Perl expression plus an
optional input file, then hands the request to the shared query runtime so
parsing, file-vs-STDIN handling, and output formatting stay consistent with the
rest of the dashboard toolchain.

=head1 WHY IT EXISTS

It exists because the dashboard ships a private, repo-local Java properties inspection tool instead of depending on a globally installed parser binary. Keeping C<propq> as a staged helper also preserves the thin-switchboard contract in C<bin/dashboard>.

=head1 WHEN TO USE

Use this file when you are changing how C<dashboard propq> chooses between STDIN and files, how it reports parse errors, or how the staged helper is wired into the shared query implementation.

=head1 HOW TO USE

Users run C<dashboard propq [path] [file]>. The staged helper selects the
Java-properties backend in the shared query runtime, which accepts the file and
path in either order, reads STDIN when no file is given, preserves dotted keys
such as C<alpha.beta>, and prints the whole parsed document when the path is
C<$d> or C<.>. If the query text uses C<$d> inside a Perl expression, the
helper evaluates that expression against the decoded Java-properties document
before formatting the result.

=head1 WHAT USES IT

It is used by the public C<dashboard propq> command, by shell snippets that want a runtime-local Java properties query tool, by integration smoke runs, and by the focused query-helper coverage under C<t/>.

=head1 EXAMPLES

  printf 'alpha.beta=5\nname=demo\n' | dashboard propq alpha.beta
  dashboard propq app.properties '$d'
  dashboard propq '$d' app.properties
  printf 'foo=1\nbar=2\n' | dashboard propq 'sort keys %$d'
  printf 'name = demo\n' | dashboard propq name

=for comment FULL-POD-DOC END

=cut
