From b4aaa589afc3810b9ed703c9c01411ec960ed592 Mon Sep 17 00:00:00 2001 From: Sander Temme Date: Thu, 1 Feb 2007 19:31:41 +0000 Subject: [PATCH] apxs: Enhance -q flag to print all known variables and their values when invoked without variable name(s). git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@502323 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 4 ++++ docs/man/apxs.8 | 6 ++--- docs/manual/programs/apxs.html.en | 17 +++++++------- docs/manual/programs/apxs.xml | 17 +++++++------- support/apxs.in | 38 +++++++++++++++++++++++++++---- 5 files changed, 56 insertions(+), 26 deletions(-) diff --git a/CHANGES b/CHANGES index 4be72421b3..2e69909564 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,10 @@ Changes with Apache 2.3.0 [Remove entries to the current 2.0 and 2.2 section below, when backported] + *) apxs: Enhance -q flag to print all known variables and their values + when invoked without variable name(s). + [William Rowe, Sander Temme] + *) mod_dbd: Create memory sub-pools for each DB connection and close DB connections in a pool cleanup function. Ensure prepared statements are destroyed before DB connection is closed. When using reslists, diff --git a/docs/man/apxs.8 b/docs/man/apxs.8 index c234392591..37a6a529aa 100644 --- a/docs/man/apxs.8 +++ b/docs/man/apxs.8 @@ -19,7 +19,7 @@ .el .ne 3 .IP "\\$1" \\$2 .. -.TH "APXS" 8 "2004-10-01" "Apache HTTP Server" "apxs" +.TH "APXS" 8 "2007-02-01" "Apache HTTP Server" "apxs" .SH NAME apxs \- APache eXtenSion tool @@ -30,7 +30,7 @@ apxs \- APache eXtenSion tool \fBapxs\fR -\fBg\fR [ -\fBS\fR \fIname\fR=\fIvalue\fR ] -\fBn\fR \fImodname\fR .PP -\fBapxs\fR -\fBq\fR [ -\fBS\fR \fIname\fR=\fIvalue\fR ] \fIquery\fR \&.\&.\&. +\fBapxs\fR -\fBq\fR [ -\fBv\fR ] [ -\fBS\fR \fIname\fR=\fIvalue\fR ] \fIquery\fR \&.\&.\&. .PP \fBapxs\fR -\fBc\fR [ -\fBS\fR \fIname\fR=\fIvalue\fR ] [ -\fBo\fR \fIdsofile\fR ] [ -\fBI\fR \fIincdir\fR ] [ -\fBD\fR \fIname\fR=\fIvalue\fR ] [ -\fBL\fR \fIlibdir\fR ] [ -\fBl\fR \fIlibname\fR ] [ -\fBWc,\fR\fIcompiler-flags\fR ] [ -\fBWl,\fR\fIlinker-flags\fR ] \fIfiles\fR \&.\&.\&. @@ -96,7 +96,7 @@ This explicitly sets the module name for the -i (install) and -g (template gener .TP -q -Performs a query for apxs's knowledge about certain settings\&. The \fIquery\fR parameters can be one or more of the following strings: CC, CFLAGS, CFLAGS_SHLIB, INCLUDEDIR, LD_SHLIB, LDFLAGS_SHLIB, LIBEXECDIR, LIBS_SHLIB, SBINDIR, SYSCONFDIR, TARGET\&. .PP Use this for manually determining settings\&. For instance use INC=-I`apxs -q INCLUDEDIR` .PP inside your own Makefiles if you need manual access to Apache's C header files\&. +Performs a query for variables and environment settings used to build httpd\&. When invoked without \fIquery\fR parameters, it prints all known variables and their values\&. The optional -v parameter formats the list output\&. .PP Use this to manually determine settings used to build the httpd that will load your module\&. For instance use INC=-I`apxs -q INCLUDEDIR` .PP inside your own Makefiles if you need manual access to Apache's C header files\&. .SS "Configuration Options" diff --git a/docs/manual/programs/apxs.html.en b/docs/manual/programs/apxs.html.en index d59660184e..630024e8ec 100644 --- a/docs/manual/programs/apxs.html.en +++ b/docs/manual/programs/apxs.html.en @@ -85,6 +85,7 @@ -n modname

apxs -q + [ -v ] [ -S name=value ] query ...

@@ -130,15 +131,13 @@

Query Options

-q
-
Performs a query for apxs's knowledge about certain - settings. The query parameters can be one or more of the - following strings: CC, CFLAGS, - CFLAGS_SHLIB, INCLUDEDIR, LD_SHLIB, - LDFLAGS_SHLIB, LIBEXECDIR, - LIBS_SHLIB, SBINDIR, SYSCONFDIR, - TARGET. - -

Use this for manually determining settings. For instance use

+
Performs a query for variables and environment settings used to + build httpd. When invoked without query parameters, + it prints all known variables and their values. The optional -v + parameter formats the list output. + +

Use this to manually determine settings used to build the + httpd that will load your module. For instance use

INC=-I`apxs -q INCLUDEDIR`

diff --git a/docs/manual/programs/apxs.xml b/docs/manual/programs/apxs.xml index 997c7f1707..b136e9abb9 100644 --- a/docs/manual/programs/apxs.xml +++ b/docs/manual/programs/apxs.xml @@ -86,6 +86,7 @@ -n modname

apxs -q + [ -v ] [ -S name=value ] query ...

@@ -131,15 +132,13 @@
Query Options
-q
-
Performs a query for apxs's knowledge about certain - settings. The query parameters can be one or more of the - following strings: CC, CFLAGS, - CFLAGS_SHLIB, INCLUDEDIR, LD_SHLIB, - LDFLAGS_SHLIB, LIBEXECDIR, - LIBS_SHLIB, SBINDIR, SYSCONFDIR, - TARGET. - -

Use this for manually determining settings. For instance use

+
Performs a query for variables and environment settings used to + build httpd. When invoked without query parameters, + it prints all known variables and their values. The optional -v + parameter formats the list output. + +

Use this to manually determine settings used to build the + httpd that will load your module. For instance use

INC=-I`apxs -q INCLUDEDIR` diff --git a/support/apxs.in b/support/apxs.in index 385d71e5ca..08638c0163 100644 --- a/support/apxs.in +++ b/support/apxs.in @@ -75,6 +75,7 @@ my $opt_A = 0; my $opt_q = 0; my $opt_h = 0; my $opt_p = 0; +my $opt_v = 0; # this subroutine is derived from Perl's getopts.pl with the enhancement of # the "+" metacharacter at the format string to allow a list to be built by @@ -142,7 +143,7 @@ sub Getopts { sub usage { print STDERR "Usage: apxs -g [-S =] -n \n"; - print STDERR " apxs -q [-S =] ...\n"; + print STDERR " apxs -q [-v] [-S =] [ ...]\n"; print STDERR " apxs -c [-S =] [-o ] [-D [=]]\n"; print STDERR " [-I ] [-L ] [-l ] [-Wc,]\n"; print STDERR " [-Wl,] [-p] ...\n"; @@ -153,9 +154,9 @@ sub usage { # option handling my $rc; -($rc, @ARGV) = &Getopts("qn:gco:I+D+L+l+W+S+eiaAp", @ARGV); +($rc, @ARGV) = &Getopts("qn:gco:I+D+L+l+W+S+eiaApv", @ARGV); &usage if ($rc == 0); -&usage if ($#ARGV == -1 and not $opt_g); +&usage if ($#ARGV == -1 and not $opt_g and not $opt_q); &usage if (not $opt_q and not ($opt_g and $opt_n) and not $opt_i and not $opt_c and not $opt_e); # argument handling @@ -303,8 +304,35 @@ if ($opt_q) { ## ## QUERY INFORMATION ## - my $result = get_vars(@args); - print "$result\n"; + my $result; + if ($#args >= 0) { + $result = get_vars(@args); + print "$result\n"; + } else { + # -q without var name prints all variables and their values + + # Additional -v pretty-prints output + if ($opt_v) { + # Variable names in alphabetic order + my @vars = sort {uc($a) cmp uc($b)} keys %config_vars; + + # Make the left column as wide as the longest variable name + my $width = 0; + foreach (@vars) { + my $l = length $_; + $width = $l unless ($l <= $width); + } + + foreach (@vars) { + printf "%-${width}s = %s\n", $_, $config_vars{$_}; + } + } else { + # Unprettified name=value list + foreach (keys %config_vars) { + print "$_=$config_vars{$_}\n"; + } + } + } } my $apr_config = get_vars("APR_CONFIG"); -- 2.40.0