diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 13:46:56 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 13:46:56 +0000 |
commit | 8e79ad9f544d1c4a0476e0d96aef0496ca7fc741 (patch) | |
tree | cda1743f5820600fd8c638ac7f034f917ac8c381 /tools/sbuild-dumpconfig | |
parent | Initial commit. (diff) | |
download | sbuild-8e79ad9f544d1c4a0476e0d96aef0496ca7fc741.tar.xz sbuild-8e79ad9f544d1c4a0476e0d96aef0496ca7fc741.zip |
Adding upstream version 0.85.6.upstream/0.85.6
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rwxr-xr-x | tools/sbuild-dumpconfig | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/tools/sbuild-dumpconfig b/tools/sbuild-dumpconfig new file mode 100755 index 0000000..05dea19 --- /dev/null +++ b/tools/sbuild-dumpconfig @@ -0,0 +1,191 @@ +#!/usr/bin/perl +# +# sbuild: build packages, obeying source dependencies +# Copyright © 1998-2000 Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de> +# Copyright © 2005 Ryan Murray <rmurray@debian.org> +# Copyright © 2005-2009 Roger Leigh <rleigh@debian.org +# Copyright © 2008 Timothy G Abbott <tabbott@mit.edu> +# Copyright © 2008 Simon McVittie <smcv@debian.org> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see +# <http://www.gnu.org/licenses/>. +# +####################################################################### + +use strict; +use warnings; + +use Sbuild::Conf qw(); +use Buildd::Conf qw(); +use Sbuild::Sysconfig; +use Text::Wrap; +use Data::Dumper; + +die "Usage: $0 sbuild|buildd config|man" if @ARGV != 2; + +my $program = $ARGV[0]; +my $output = $ARGV[1]; + +$Sbuild::Sysconfig::paths{'SBUILD_CONF'} = '/invalid'; +$Sbuild::Sysconfig::paths{'BUILDD_CONF'} = '/invalid'; + +$Data::Dumper::Sortkeys = 1; + +my $conf; +if ($program eq "sbuild") { + $conf = Sbuild::Conf::new(CHECK=>0); +} elsif ($program eq "buildd") { + $conf = Buildd::Conf::new(CHECK=>0); +} else { + die "Unsupported configuration type $program"; +} +exit 1 if !defined($conf); + + +die "Unsupported output type $output" + if ($output ne "config" && $output ne "man"); + + + +my @keys = sort $conf->get_keys(); + +# print "KEYS: " . join(", ", @keys) . "\n"; + +my %tmpgroups; + +foreach my $key (@keys) { +# print "KEY: $key, GROUP: " . $conf->_get_group($key) . "\n"; + $tmpgroups{$conf->_get_group($key)} = 1; +} + +my @groups = sort keys %tmpgroups; + +# print "GROUPS: " . join(",\n", @groups) . "\n"; + + +my $header = "# ${program}.conf: ${program} settings. -*- Perl -*-\n"; + +$header .= <<END; +# Default settings are commented out. +# Note that all possible settings are listed here. Many may be set on +# the command-line, and do not normally need setting here, +# e.g. \$verbose. Others need setting by each individual user in their +# ~/.${program}rc, but are listed here for completeness. +END + +if ($output eq "config") { + print "$header"; +} +foreach my $group (@groups) { + # Don't print internal keys + next if $group =~ m/^__/; + + if ($output eq "config") { + print "\n\n##\n## $group\n##\n\n"; + } elsif ($output eq "man") { + print ".SS $group\n"; + } + + foreach my $key (@keys) { + if ($conf->_get_group($key) eq $group) { + my $type = $conf->_get_type($key); + my $varname = $conf->_get_varname($key); + my $help = $conf->_get_help($key); + my $default = $conf->_get_default($key); + my $ignore_default = $conf->_get_ignore_default($key); + my $cli_options = $conf->_get_cli_options($key); + my $example = $conf->_get_example($key); + if ($output eq "config") { + print "# $key\n"; + print "# Type: $type\n"; + if ($help) { + print wrap("# ", "# ", "$help\n"); + } + if ($cli_options) { + print "# See also related command line options in sbuild(1):\n"; + foreach my $opt (@{$cli_options}) { + print "# $opt\n"; + } + } + if ($example) { + foreach my $line (split("\n", $example)) { + print "# $line\n"; + } + } + if ($ignore_default) { + print wrap("#", "#", "$varname = ...;"); + print("\n"); + } else { + print wrap("#", "#", Data::Dumper->Dump([$default], + ["$varname"])); + } + print("\n"); + } elsif ($output eq "man") { + print ".TP\n"; + print ".BR $key\n"; + print "$type type.\n"; + if ($help) { + print "$help\n"; +# print wrap("", "", "$help\n"); + } + if ($cli_options) { + print ".IP\n"; + print "Related\n"; + print ".BR sbuild (1)\n"; + print "command line options:\n"; + print ".PP\n"; + print ".RS\n"; + foreach my $opt (@{$cli_options}) { + print "\\f[CR]$opt\\fP\n"; + print ".br\n"; + } + print ".RE\n"; + } + if ($example) { + print ".IP\n"; + print "Example:\n"; + print ".PP\n"; + print ".RS\n"; + foreach my $line (split("\n", $example)) { + print "\\f[CR]$line\\fP\n"; + print ".br\n" + } + print ".RE\n"; + } + if ($ignore_default) { + print ".PP\n"; + print ".RS\n"; + print "\\f[CR]$varname = ...;\\fP\n"; + print ".br\n"; + print ".RE\n"; + } else { + print ".IP\n"; + print "Default:\n"; + print ".PP\n"; + print ".RS\n"; + foreach my $line (split("\n", + Data::Dumper->Dump([$default], + ["$varname"]))) { + print "\\f[CR]$line\\fP\n"; + print ".br\n" + } + print ".RE\n"; + } + } + } + } +} +if ($output eq "config") { + print "1;\n"; +} |