mirror of
https://github.com/samba-team/samba.git
synced 2024-12-28 07:21:54 +03:00
0c5bbb3bbd
more info than just what parameters are not supported by SWAT.
(This used to be commit 7db533cb47
)
123 lines
3.2 KiB
Perl
123 lines
3.2 KiB
Perl
#! /usr/bin/perl5
|
|
##
|
|
## This is a simple script written by Herb Lewis @ SGI <herb@samba.org>
|
|
## for reporting which parameters are supported by loadparm.c but
|
|
## not by SWAT I just thought it looked fun and might be of interest to others
|
|
## --jerry@samba.org
|
|
##
|
|
## Here is a little info on the usage and output format so you don't have
|
|
## to dig through the code to understand what is printed.
|
|
##
|
|
## Useage: swat.pl [path_to_loadparm.c]
|
|
##
|
|
## The output consists of 4 columns of information
|
|
## Option Name, Global Page, Share Page, Printer Page
|
|
## The section separaters will also be printed (preceded by 16 *) to show
|
|
## which options are grouped in the various sections.
|
|
##
|
|
## If the option name is preceded by an * it means this is a deprecated option.
|
|
## If the option name is preceded by 5 spaces it means this is an alias for the
|
|
## previous option.
|
|
##
|
|
## Under the Global Page, Share Page, and Printer Page columns there will be
|
|
## one of 3 entries, BASIC, ADVANCED, or no. "BASIC" indicates this option will
|
|
## show in the Basic View of that page in SWAT. "ADVANCED" indicates this
|
|
## option will show in the Advanced View of that page in SWAT. "No" indicates
|
|
## that this option is not available on that page in SWAT.
|
|
##
|
|
## Under the Global Page column, if an entry begins with an * it indicates that
|
|
## this is actually specified in Samba as a "service parameter" not a "global
|
|
## parameter" but you can set a default value for this on the Global Page in
|
|
## SWAT.
|
|
##
|
|
## --herb@samba.org
|
|
|
|
$lastone = "nothing";
|
|
|
|
if (@ARGV[0]) {
|
|
$filename = @ARGV[0];
|
|
} else {
|
|
$filename = "/usr3/samba20/samba/source/param/loadparm.c";
|
|
}
|
|
|
|
open (INFILE,$filename) || die "unable to open $filename\n";
|
|
while (not eof(INFILE))
|
|
{
|
|
$_ = <INFILE>;
|
|
last if ( /^static struct parm_struct parm_table/) ;
|
|
}
|
|
print "Option Name Global Page Share Page Printer Page\n";
|
|
print "---------------------------------------------------------------------";
|
|
while (not eof(INFILE))
|
|
{
|
|
$_ = <INFILE>;
|
|
last if (/};/);
|
|
@fields = split(/,/,$_);
|
|
next if not ($fields[0] =~ /^.*{"/);
|
|
$fields[0] =~ s/.*{"//;
|
|
$fields[0] =~ s/"//;
|
|
if ($fields[3] eq $lastone) {
|
|
print " $fields[0]\n";
|
|
next;
|
|
}
|
|
$lastone = $fields[3];
|
|
$fields[2] =~ s/^\s+//;
|
|
$fields[2] =~ s/\s+$//;
|
|
$fields[2] =~ s/}.*$//;
|
|
$fields[6] =~ s/^\s+//;
|
|
$fields[6] =~ s/\s+$//;
|
|
$fields[6] =~ s/}.*$//;
|
|
if ($fields[2] =~ /P_SEPARATOR/) {
|
|
print "\n****************$fields[0]\n";
|
|
next;
|
|
}
|
|
else {
|
|
if ($fields[6] =~ /FLAG_DEPRECATED/) {
|
|
print "*$fields[0]".' 'x(31-length($fields[0]));
|
|
}
|
|
else {
|
|
print "$fields[0]".' 'x(32-length($fields[0]));
|
|
}
|
|
}
|
|
if (($fields[2] =~ /P_GLOBAL/) || ($fields[6] =~ /FLAG_GLOBAL/)) {
|
|
if ($fields[6] =~ /FLAG_GLOBAL/) {
|
|
print "*";
|
|
}
|
|
else {
|
|
print " ";
|
|
}
|
|
if ($fields[6] =~ /FLAG_BASIC/) {
|
|
print "BASIC ";
|
|
}
|
|
else {
|
|
print "ADVANCED ";
|
|
}
|
|
}
|
|
else {
|
|
print " no ";
|
|
}
|
|
if ($fields[6] =~ /FLAG_SHARE/) {
|
|
if ($fields[6] =~ /FLAG_BASIC/) {
|
|
print "BASIC ";
|
|
}
|
|
else {
|
|
print "ADVANCED ";
|
|
}
|
|
}
|
|
else {
|
|
print "no ";
|
|
}
|
|
if ($fields[6] =~ /FLAG_PRINT/) {
|
|
if ($fields[6] =~ /FLAG_BASIC/) {
|
|
print "BASIC";
|
|
}
|
|
else {
|
|
print "ADVANCED";
|
|
}
|
|
}
|
|
else {
|
|
print "no";
|
|
}
|
|
print "\n";
|
|
}
|