diff options
author | Oliver Tappe | 2008-03-20 01:04:16 +0100 |
---|---|---|
committer | Oliver Tappe | 2008-03-20 01:04:16 +0100 |
commit | a0ce0340d0f95514008cfac751fe58748bbadd88 (patch) | |
tree | 844bb9e015f2fbcd83de54c3a63dd027b1218211 /bin | |
parent | * fixed several bugs with respect to the listing of plugins (as part of a system (diff) | |
download | core-a0ce0340d0f95514008cfac751fe58748bbadd88.tar.gz core-a0ce0340d0f95514008cfac751fe58748bbadd88.tar.xz core-a0ce0340d0f95514008cfac751fe58748bbadd88.zip |
* Switched indent used in Perl-code and settings files from tabs to 4 spaces.
May need some manual corrections here and there, but should basically be ok.
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@1658 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/devel-tools/determineMinimumPackageSet.pl | 154 | ||||
-rwxr-xr-x | bin/devel-tools/extractTranslations.pl | 242 | ||||
-rwxr-xr-x | bin/devel-tools/parseSusePatterns.pl | 152 | ||||
-rwxr-xr-x | bin/slxldd | 30 | ||||
-rwxr-xr-x | bin/slxsettings | 242 |
5 files changed, 410 insertions, 410 deletions
diff --git a/bin/devel-tools/determineMinimumPackageSet.pl b/bin/devel-tools/determineMinimumPackageSet.pl index e2747674..52d13fc5 100755 --- a/bin/devel-tools/determineMinimumPackageSet.pl +++ b/bin/devel-tools/determineMinimumPackageSet.pl @@ -28,26 +28,26 @@ use Getopt::Long; use Pod::Usage; my ( - $helpReq, - $verbose, - $versionReq, + $helpReq, + $verbose, + $versionReq, - %pkgs, - @leafPkgs, + %pkgs, + @leafPkgs, ); my $rpmOutFile = "/tmp/minpkgset.rpmout"; my $rpmErrFile = "/tmp/minpkgset.rpmerr"; GetOptions( - 'help|?' => \$helpReq, - 'verbose' => \$verbose, - 'version' => \$versionReq, + 'help|?' => \$helpReq, + 'verbose' => \$verbose, + 'version' => \$versionReq, ) or pod2usage(2); pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $helpReq; if ($versionReq) { - system('slxversion'); - exit 1; + system('slxversion'); + exit 1; } determineMinimumPackageSet(); @@ -60,90 +60,90 @@ exit; sub slurpFile { - my $file = shift; - - my $fh; - open($fh, '<', $file) - or die _tr("could not open file '%s' for reading! (%s)", $file, $!); - local $/ = undef; - my $text = <$fh>; - close($fh); - return $text; + my $file = shift; + + my $fh; + open($fh, '<', $file) + or die _tr("could not open file '%s' for reading! (%s)", $file, $!); + local $/ = undef; + my $text = <$fh>; + close($fh); + return $text; } sub rpmDie { - my $rpmCmd = shift; - - print "\n*** An error occurred when executing the following rpm-command:\n"; - print "\t$rpmCmd\n"; - my $err = slurpFile($rpmErrFile); - print "*** The error was:\n"; - print "\t$err\n"; - exit 5; + my $rpmCmd = shift; + + print "\n*** An error occurred when executing the following rpm-command:\n"; + print "\t$rpmCmd\n"; + my $err = slurpFile($rpmErrFile); + print "*** The error was:\n"; + print "\t$err\n"; + exit 5; } sub callRpm { - my $rpmCmd = shift; + my $rpmCmd = shift; - my $res = system("$rpmCmd >$rpmOutFile 2>$rpmErrFile"); - exit 1 if ($res & 127); # child caught a signal - rpmDie($rpmCmd) if -s $rpmErrFile; - my $out = slurpFile($rpmOutFile); - return ($res, $out); + my $res = system("$rpmCmd >$rpmOutFile 2>$rpmErrFile"); + exit 1 if ($res & 127); # child caught a signal + rpmDie($rpmCmd) if -s $rpmErrFile; + my $out = slurpFile($rpmOutFile); + return ($res, $out); } sub handlePackage { - my $pkgName = shift; - - # if any other package requires it, the current package is not a leaf! - print "\tdirectly required..." if $verbose; - my ($rpmRes, $rpmOut) = callRpm(qq[rpm -q --whatrequires "$pkgName"]); - print $rpmRes ? "no\n" : "yes\n" if $verbose; - return 0 unless $rpmRes; - - print "\tany of its provides required..." if $verbose; - ($rpmRes, $rpmOut) = callRpm(qq[rpm -q --provides "$pkgName"]); - my $provides - = join ' ', - map { - my $rpm = $_; - $rpm =~ s[^\s*(.+?)\s*$][$1]; - qq["$rpm"]; - } - split "\n", $rpmOut; - ($rpmRes, $rpmOut) = callRpm(qq[rpm -q --whatrequires $provides]); - if ($rpmRes == 0) { - # ignore if rpm tells us that a provides is required by - # the package that provides it: - $rpmRes = 1; - while($rpmOut =~ m[^\s*(.+?)\s*]gm) { - if ($1 ne $pkgName) { - $rpmRes = 0; - last; - } - } - } - print $rpmRes ? "no\n" : "yes\n" if $verbose; - return 0 unless $rpmRes; - - print "!!! adding $pkgName\n" if $verbose; - push @leafPkgs, $pkgName; - return 1; + my $pkgName = shift; + + # if any other package requires it, the current package is not a leaf! + print "\tdirectly required..." if $verbose; + my ($rpmRes, $rpmOut) = callRpm(qq[rpm -q --whatrequires "$pkgName"]); + print $rpmRes ? "no\n" : "yes\n" if $verbose; + return 0 unless $rpmRes; + + print "\tany of its provides required..." if $verbose; + ($rpmRes, $rpmOut) = callRpm(qq[rpm -q --provides "$pkgName"]); + my $provides + = join ' ', + map { + my $rpm = $_; + $rpm =~ s[^\s*(.+?)\s*$][$1]; + qq["$rpm"]; + } + split "\n", $rpmOut; + ($rpmRes, $rpmOut) = callRpm(qq[rpm -q --whatrequires $provides]); + if ($rpmRes == 0) { + # ignore if rpm tells us that a provides is required by + # the package that provides it: + $rpmRes = 1; + while($rpmOut =~ m[^\s*(.+?)\s*]gm) { + if ($1 ne $pkgName) { + $rpmRes = 0; + last; + } + } + } + print $rpmRes ? "no\n" : "yes\n" if $verbose; + return 0 unless $rpmRes; + + print "!!! adding $pkgName\n" if $verbose; + push @leafPkgs, $pkgName; + return 1; } sub determineMinimumPackageSet { - my ($rpmRes, $allPkgs) - = callRpm(qq[rpm -qa --queryformat "%{NAME}\n"]); - foreach my $p (sort split "\n", $allPkgs) { - print "$p...\n" if $verbose; - print "." unless $verbose; - handlePackage($p); - } - return; + my ($rpmRes, $allPkgs) + = callRpm(qq[rpm -qa --queryformat "%{NAME}\n"]); + foreach my $p (sort split "\n", $allPkgs) { + print "$p...\n" if $verbose; + print "." unless $verbose; + handlePackage($p); + } + return; } __END__ diff --git a/bin/devel-tools/extractTranslations.pl b/bin/devel-tools/extractTranslations.pl index eab71f04..789a70ad 100755 --- a/bin/devel-tools/extractTranslations.pl +++ b/bin/devel-tools/extractTranslations.pl @@ -11,8 +11,8 @@ # General information about OpenSLX can be found at http://openslx.org/ # ----------------------------------------------------------------------------- # extractTranslations.pl -# - OpenSLX-script to extract translatable strings from other scripts -# and modules. +# - OpenSLX-script to extract translatable strings from other scripts +# and modules. # ----------------------------------------------------------------------------- use strict; use warnings; @@ -36,34 +36,34 @@ use Pod::Usage; use OpenSLX::Utils; my ( - $helpReq, - $show, - $update, - $verbose, - $versionReq, - - %translatableStrings, - $fileCount, + $helpReq, + $show, + $update, + $verbose, + $versionReq, + + %translatableStrings, + $fileCount, ); GetOptions( - 'help|?' => \$helpReq, - 'update' => \$update, - 'show' => \$show, - 'verbose' => \$verbose, - 'version' => \$versionReq, + 'help|?' => \$helpReq, + 'update' => \$update, + 'show' => \$show, + 'verbose' => \$verbose, + 'version' => \$versionReq, ) or pod2usage(2); pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $helpReq; if ($versionReq) { - system('slxversion'); - exit 1; + system('slxversion'); + exit 1; } # chdir to the repository's root folder: use FindBin; my $path = "$FindBin::RealBin/../.."; chdir($path) - or die "can't chdir to repository-root <$path> ($!)"; + or die "can't chdir to repository-root <$path> ($!)"; print "searching in ".cwd()."\n"; find(\&ExtractTrStrings, '.'); @@ -72,122 +72,122 @@ my $trCount = scalar keys %translatableStrings; print "Found $trCount translatable strings in $fileCount files.\n"; if ($show) { - foreach my $tr (sort {lc($a) cmp lc($b)} keys %translatableStrings) { - print "\tqq{$tr}\n\t\t=> qq{$tr}\n"; - } + foreach my $tr (sort {lc($a) cmp lc($b)} keys %translatableStrings) { + print "\tqq{$tr}\n\t\t=> qq{$tr}\n"; + } } if ($update) { - find(\&UpdateTrModule, 'lib/OpenSLX/Translations'); + find(\&UpdateTrModule, 'lib/OpenSLX/Translations'); } exit; sub ExtractTrStrings { - $File::Find::prune = 1 if ($_ eq '.svn' - || $_ eq 'Translations' - || $_ eq 'devel-tools'); - return if -d; - my $text = slurpFile($_); - if ($File::Find::name !~ m[\.pm$] && $text !~ m[^#!.+/perl]im) { - # ignore anything other than perl-modules and -scripts - return; - } - print "$File::Find::name...\n"; - $fileCount++; - while($text =~ m[_tr\s*\(\s*(.+?)\s*\);]gos) { - # NOTE: that cheesy regex relies on the string ');' not being used - # inside of translatable strings... so SLX_DONT_DO_THAT! - # As an alternative, we could implement a real parser, but - # I'd like to postpone that until the current scheme proves - # simply not good enough. - my $tr = $1; - if (!($tr =~ m[^'([^']+)'\s*(,.+?)*\s*$]os - || $tr =~ m[^\"([^"]+)\"\s*(,.+?)*\s*$]os - || $tr =~ m{^qq?\[([^\]]+)\]\s*(,.+?)*\s*$}os)) { - die "$File::Find::name: could not parse _tr()-argument \n" - ."\t$tr\nPlease correct and retry.\n"; - } - $tr = $1; - if ($tr =~ m[(\$\w+)]) { - die "$File::Find::name: _tr()-argument\n\t$tr\n" - ."contains variable '$1'.\nPlease correct and retry.\n"; - } - $tr =~ s[\n][\\n]g; - $tr =~ s[\t][\\t]g; - $translatableStrings{$tr} = $tr; - print "\t$tr\n" if $verbose; - } + $File::Find::prune = 1 if ($_ eq '.svn' + || $_ eq 'Translations' + || $_ eq 'devel-tools'); + return if -d; + my $text = slurpFile($_); + if ($File::Find::name !~ m[\.pm$] && $text !~ m[^#!.+/perl]im) { + # ignore anything other than perl-modules and -scripts + return; + } + print "$File::Find::name...\n"; + $fileCount++; + while($text =~ m[_tr\s*\(\s*(.+?)\s*\);]gos) { + # NOTE: that cheesy regex relies on the string ');' not being used + # inside of translatable strings... so SLX_DONT_DO_THAT! + # As an alternative, we could implement a real parser, but + # I'd like to postpone that until the current scheme proves + # simply not good enough. + my $tr = $1; + if (!($tr =~ m[^'([^']+)'\s*(,.+?)*\s*$]os + || $tr =~ m[^\"([^"]+)\"\s*(,.+?)*\s*$]os + || $tr =~ m{^qq?\[([^\]]+)\]\s*(,.+?)*\s*$}os)) { + die "$File::Find::name: could not parse _tr()-argument \n" + ."\t$tr\nPlease correct and retry.\n"; + } + $tr = $1; + if ($tr =~ m[(\$\w+)]) { + die "$File::Find::name: _tr()-argument\n\t$tr\n" + ."contains variable '$1'.\nPlease correct and retry.\n"; + } + $tr =~ s[\n][\\n]g; + $tr =~ s[\t][\\t]g; + $translatableStrings{$tr} = $tr; + print "\t$tr\n" if $verbose; + } } sub UpdateTrModule { - $File::Find::prune = 1 if ($_ eq '.svn'); - return if -d || !/.pm$/; - print "updating $File::Find::name...\n"; - my $trModule = $_; - my $useKeyAsTranslation = ($trModule eq 'posix.pm'); - my $text = slurpFile($trModule); - if ($text !~ m[%translations\s*=\s*\(\s*(.+)\s*\);]os) { - print "\t*** No translations found - file will be skipped! ***\n"; - return; - } - my %translations; - # evaluate the hash read from file into %translations: - if (!eval "$&") { - print "\t*** translations can't be evaluated - file will be skipped! ***\n"; - return; - } - my $updatedTranslations = "%translations = (\n"; - my $keepCount = 0; - my $newCount = 0; - foreach my $tr (sort {lc($a) cmp lc($b)} keys %translatableStrings) { - if (!length($translations{$tr})) { - if ($useKeyAsTranslation) { - # POSIX language (English): use key as translation: - $updatedTranslations - .= "\tq{$tr}\n\t=>\n\tqq{$tr},\n\n"; - $newCount++; - } else { - # no translation available, we mark the key, such that a - # search for this key will fall back to the english message: - my $trMark = "NEW:$tr"; - if (exists $translations{$trMark}) { - # the marked string already exists, we keep the translation - # if any (usually, of course, there is none): - my $trValue = $translations{$trMark}; - $trValue =~ s[\n][\\n]g; - $trValue =~ s[\t][\\t]g; - $updatedTranslations - .= "\tq{$trMark}\n\t=>\n\tqq{$trValue},\n\n"; - $keepCount++; - } else { - $updatedTranslations - .= "\tq{$trMark}\n\t=>\n\tqq{},\n\n"; - $newCount++; - } - } - } else { - # use existing translation for key: - my $trValue = $translations{$tr}; - $trValue =~ s[\n][\\n]g; - $trValue =~ s[\t][\\t]g; - $updatedTranslations - .= "\tq{$tr}\n\t=>\n\tqq{$trValue},\n\n"; - $keepCount++; - } - } - my $delCount = scalar(keys %translations) - $keepCount; - $text =~ s[%translations\s*=\s*\(\s*(.+)\s*\);] - [$updatedTranslations);]os; - if ($newCount + $delCount) { - chomp $text; - spitFile($trModule, $text."\n"); - print "\tadded $newCount strings, kept $keepCount and removed $delCount.\n"; - } else { - print "\tnothing changed\n"; - } + $File::Find::prune = 1 if ($_ eq '.svn'); + return if -d || !/.pm$/; + print "updating $File::Find::name...\n"; + my $trModule = $_; + my $useKeyAsTranslation = ($trModule eq 'posix.pm'); + my $text = slurpFile($trModule); + if ($text !~ m[%translations\s*=\s*\(\s*(.+)\s*\);]os) { + print "\t*** No translations found - file will be skipped! ***\n"; + return; + } + my %translations; + # evaluate the hash read from file into %translations: + if (!eval "$&") { + print "\t*** translations can't be evaluated - file will be skipped! ***\n"; + return; + } + my $updatedTranslations = "%translations = (\n"; + my $keepCount = 0; + my $newCount = 0; + foreach my $tr (sort {lc($a) cmp lc($b)} keys %translatableStrings) { + if (!length($translations{$tr})) { + if ($useKeyAsTranslation) { + # POSIX language (English): use key as translation: + $updatedTranslations + .= "\tq{$tr}\n\t=>\n\tqq{$tr},\n\n"; + $newCount++; + } else { + # no translation available, we mark the key, such that a + # search for this key will fall back to the english message: + my $trMark = "NEW:$tr"; + if (exists $translations{$trMark}) { + # the marked string already exists, we keep the translation + # if any (usually, of course, there is none): + my $trValue = $translations{$trMark}; + $trValue =~ s[\n][\\n]g; + $trValue =~ s[\t][\\t]g; + $updatedTranslations + .= "\tq{$trMark}\n\t=>\n\tqq{$trValue},\n\n"; + $keepCount++; + } else { + $updatedTranslations + .= "\tq{$trMark}\n\t=>\n\tqq{},\n\n"; + $newCount++; + } + } + } else { + # use existing translation for key: + my $trValue = $translations{$tr}; + $trValue =~ s[\n][\\n]g; + $trValue =~ s[\t][\\t]g; + $updatedTranslations + .= "\tq{$tr}\n\t=>\n\tqq{$trValue},\n\n"; + $keepCount++; + } + } + my $delCount = scalar(keys %translations) - $keepCount; + $text =~ s[%translations\s*=\s*\(\s*(.+)\s*\);] + [$updatedTranslations);]os; + if ($newCount + $delCount) { + chomp $text; + spitFile($trModule, $text."\n"); + print "\tadded $newCount strings, kept $keepCount and removed $delCount.\n"; + } else { + print "\tnothing changed\n"; + } } __END__ diff --git a/bin/devel-tools/parseSusePatterns.pl b/bin/devel-tools/parseSusePatterns.pl index 317a9c47..a286cd71 100755 --- a/bin/devel-tools/parseSusePatterns.pl +++ b/bin/devel-tools/parseSusePatterns.pl @@ -11,8 +11,8 @@ # General information about OpenSLX can be found at http://openslx.org/ # ----------------------------------------------------------------------------- # parseSusePatterns.pl -# - OpenSLX script to extract a package list from a given list of -# SUSE-pattern-files (*.pat). +# - OpenSLX script to extract a package list from a given list of +# SUSE-pattern-files (*.pat). # ----------------------------------------------------------------------------- use strict; use warnings; @@ -27,30 +27,30 @@ use Getopt::Long; use Pod::Usage; my ( - $helpReq, - $versionReq, + $helpReq, + $versionReq, - %patternNames, - %packageNames, + %patternNames, + %packageNames, ); GetOptions( - 'help|?' => \$helpReq, - 'version' => \$versionReq, + 'help|?' => \$helpReq, + 'version' => \$versionReq, ) or pod2usage(2); pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $helpReq; if ($versionReq) { - system('slxversion'); - exit 1; + system('slxversion'); + exit 1; } if ($ARGV[0] !~ m[^(\w+)-(.+)$]) { - die "can't extract architecture from pattern file name '$ARGV[0]'"; + die "can't extract architecture from pattern file name '$ARGV[0]'"; } my $arch = $2; foreach my $patternFile (@ARGV) { - parsePatternFile($patternFile, 1); + parsePatternFile($patternFile, 1); } print join("\n", sort keys %packageNames)."\n"; @@ -59,78 +59,78 @@ exit; sub parsePatternFile { - my $patternFile = shift; - my $outmost = shift; - - my $patFH; - if (!open($patFH, '<', $patternFile)) { - return unless $outmost; - die "unable to open $patternFile"; - } - undef $/; - my $content = <$patFH>; - close($patFH); - $patternNames{$patternFile} = 1; - - if ($content =~ m[^\=Sum.de:\s*(.+?)\s*$]ms) { - print "+ $1\n"; - } - if ($content =~ m[^\+Sug:\s*?$(.+?)^\-Sug:\s*?$]ms) { - addSubPatterns($1); - } - if ($content =~ m[^\+Req:\s*?$(.+?)^\-Req:\s*?$]ms) { - addSubPatterns($1); - } - if ($content =~ m[^\+Rec:\s*?$(.+?)^\-Rec:\s*?$]ms) { - addSubPatterns($1); - } - if ($content =~ m[^\+Prq:\s*?$(.+?)^\-Prq:\s*?$]ms) { - addPkgNames($1); - } - if ($content =~ m[^\+Prc:\s*?$(.+?)^\-Prc:\s*?$]ms) { - addPkgNames($1); - } - return; + my $patternFile = shift; + my $outmost = shift; + + my $patFH; + if (!open($patFH, '<', $patternFile)) { + return unless $outmost; + die "unable to open $patternFile"; + } + undef $/; + my $content = <$patFH>; + close($patFH); + $patternNames{$patternFile} = 1; + + if ($content =~ m[^\=Sum.de:\s*(.+?)\s*$]ms) { + print "+ $1\n"; + } + if ($content =~ m[^\+Sug:\s*?$(.+?)^\-Sug:\s*?$]ms) { + addSubPatterns($1); + } + if ($content =~ m[^\+Req:\s*?$(.+?)^\-Req:\s*?$]ms) { + addSubPatterns($1); + } + if ($content =~ m[^\+Rec:\s*?$(.+?)^\-Rec:\s*?$]ms) { + addSubPatterns($1); + } + if ($content =~ m[^\+Prq:\s*?$(.+?)^\-Prq:\s*?$]ms) { + addPkgNames($1); + } + if ($content =~ m[^\+Prc:\s*?$(.+?)^\-Prc:\s*?$]ms) { + addPkgNames($1); + } + return; } sub addSubPatterns { - my $patternNames = shift; - - my @subPatterns - = grep { length($_) > 0 } - map { - my $pattern = $_; - $pattern =~ s[^\s*(.+?)\s*$][$1]; - $pattern; - } - split "\n", $patternNames; - - foreach my $subPattern (@subPatterns) { - my $subPatternFile = "$subPattern-$arch"; - if (!exists $patternNames{$subPatternFile}) { - parsePatternFile($subPatternFile); - } - } - return; + my $patternNames = shift; + + my @subPatterns + = grep { length($_) > 0 } + map { + my $pattern = $_; + $pattern =~ s[^\s*(.+?)\s*$][$1]; + $pattern; + } + split "\n", $patternNames; + + foreach my $subPattern (@subPatterns) { + my $subPatternFile = "$subPattern-$arch"; + if (!exists $patternNames{$subPatternFile}) { + parsePatternFile($subPatternFile); + } + } + return; } sub addPkgNames { - my $pkgs = shift; - - my @pkgNames - = grep { length($_) > 0 } - map { - my $pkg = $_; - $pkg =~ s[^\s*(.+?)\s*$][$1]; - $pkg; - } - split "\n", $pkgs; - foreach my $pkgName (@pkgNames) { - $packageNames{$pkgName} = 1; - } - return; + my $pkgs = shift; + + my @pkgNames + = grep { length($_) > 0 } + map { + my $pkg = $_; + $pkg =~ s[^\s*(.+?)\s*$][$1]; + $pkg; + } + split "\n", $pkgs; + foreach my $pkgName (@pkgNames) { + $packageNames{$pkgName} = 1; + } + return; } =head1 NAME @@ -11,7 +11,7 @@ # General information about OpenSLX can be found at http://openslx.org/ # ----------------------------------------------------------------------------- # slxldd -# - OpenSLX-rewrite of ldd that works on multiple architectures. +# - OpenSLX-rewrite of ldd that works on multiple architectures. # ----------------------------------------------------------------------------- use strict; use warnings; @@ -38,41 +38,41 @@ use OpenSLX::Basics; use OpenSLX::LibScanner; my %option = ( - rootPath => '/', + rootPath => '/', ); GetOptions( - 'help|?' => \$option{helpReq}, - 'man' => \$option{manReq}, - 'root-path=s' => \$option{rootPath}, - 'verbose' => \$option{verbose}, - 'version' => \$option{versionReq}, + 'help|?' => \$option{helpReq}, + 'man' => \$option{manReq}, + 'root-path=s' => \$option{rootPath}, + 'verbose' => \$option{verbose}, + 'version' => \$option{versionReq}, ) or pod2usage(2); pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $option{helpReq}; pod2usage(-verbose => 2) if $option{manReq}; if ($option{versionReq}) { - system('slxversion'); - exit 1; + system('slxversion'); + exit 1; } openslxInit(); if (!$option{rootPath}) { - print STDERR _tr("You need to specify the root-path!\n"); - pod2usage(2); + print STDERR _tr("You need to specify the root-path!\n"); + pod2usage(2); } $option{rootPath} =~ s[/+$][]; # remove trailing slashes if (!@ARGV) { - print STDERR _tr("You need to specify at least one file!\n"); - pod2usage(2); + print STDERR _tr("You need to specify at least one file!\n"); + pod2usage(2); } my $libScanner = OpenSLX::LibScanner->new({ - 'root-path' => $option{rootPath}, - 'verbose' => $option{verbose}, + 'root-path' => $option{rootPath}, + 'verbose' => $option{verbose}, }); my @libs = $libScanner->determineRequiredLibs(@ARGV); diff --git a/bin/slxsettings b/bin/slxsettings index 643b8026..6c081ddf 100755 --- a/bin/slxsettings +++ b/bin/slxsettings @@ -11,7 +11,7 @@ # General information about OpenSLX can be found at http://openslx.org/ # ----------------------------------------------------------------------------- # slxsettings -# - OpenSLX-script to show & change local settings +# - OpenSLX-script to show & change local settings # ----------------------------------------------------------------------------- use strict; use warnings; @@ -46,68 +46,68 @@ use OpenSLX::Utils; my (@reset, %givenSettings, %option); GetOptions( - 'quiet' => \$option{quiet}, - 'help|?' => \$option{helpReq}, - 'man' => \$option{manReq}, - 'version' => \$option{versionReq}, + 'quiet' => \$option{quiet}, + 'help|?' => \$option{helpReq}, + 'man' => \$option{manReq}, + 'version' => \$option{versionReq}, ); pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $option{helpReq}; pod2usage(-verbose => 2) if $option{manReq}; if ($option{versionReq}) { - system('slxversion'); - exit 1; + system('slxversion'); + exit 1; } if ($> != 0) { - die _tr("Sorry, this script can only be executed by the superuser!\n"); + die _tr("Sorry, this script can only be executed by the superuser!\n"); } openslxInit() or pod2usage(2); # some settings must match a certain pattern: my %configPattern = ( - 'db-type' => '(SQLite|mysql)', + 'db-type' => '(SQLite|mysql)', ); # the remaining cmdline arguments are set or reset actions, each followed # by a single argument: while (scalar @ARGV) { - my $action = shift || ''; - my $arg = shift || ''; - if ($action eq 'set') { - if ($arg !~ m[^([-\w]+)=(.+)$]) { - die _tr( - "set-argument '%s' has unknown format, expected '<key>=<value>!'", - $arg - ); - } - $givenSettings{$1} = $2; - } - elsif ($action eq 'reset') { - push @reset, $arg; - } - else { - die _tr(unshiftHereDoc(<<' END-OF-HERE'), $arg, $0); - action '%s' is not understood! Known actions are: - set - reset - Try '%s --help' for more info. - END-OF-HERE - } + my $action = shift || ''; + my $arg = shift || ''; + if ($action eq 'set') { + if ($arg !~ m[^([-\w]+)=(.+)$]) { + die _tr( + "set-argument '%s' has unknown format, expected '<key>=<value>!'", + $arg + ); + } + $givenSettings{$1} = $2; + } + elsif ($action eq 'reset') { + push @reset, $arg; + } + else { + die _tr(unshiftHereDoc(<<' END-OF-HERE'), $arg, $0); + action '%s' is not understood! Known actions are: + set + reset + Try '%s --help' for more info. + END-OF-HERE + } } # fetch current content of local settings file... my $fileName = "$openslxConfig{'config-path'}/settings"; if (!-e $fileName) { - # create empty default settings file with tight mode (root-only access) - # [I know this isn't *secure* as such, but it's still better than nothing] - slxsystem("touch $fileName && chmod 0600 $fileName"); + # create empty default settings file with tight mode (root-only access) + # [I know this isn't *secure* as such, but it's still better than nothing] + slxsystem("touch $fileName && chmod 0600 $fileName"); } my $configObj = Config::General->new( - -ConfigFile => $fileName, - -SplitDelimiter => '\s*=\s*', - -SplitPolicy => 'custom', - -StoreDelimiter => '=', + -ConfigFile => $fileName, + -SplitDelimiter => '\s*=\s*', + -SplitPolicy => 'custom', + -StoreDelimiter => '=', ); my %settings = $configObj->getall(); @@ -115,116 +115,116 @@ my %changed; # ...set new values... foreach my $key (keys %givenSettings) { - my $value = $givenSettings{$key}; - next if !defined $value; - if (!exists $openslxConfig{$key}) { - die _tr("option '%s' is not known!", $key); - } - if ($key =~ m{^(base-path|config-path)$}) { - die _tr("option '%s' is fixed!", $key); - } - if (exists $configPattern{$key} && $value !~ m{$configPattern{$key}}) { - die _tr( - "option '%s' must match pattern '%s'!", $key, $configPattern{$key} - ); - } - - vlog(0, _tr("setting %s to '%s'", $key, $value)) unless $option{quiet}; - my $externalKey = externalKeyFor($key); - if (!exists $settings{$externalKey} || $settings{$externalKey} ne $value) { - $settings{$externalKey} = $value; - } - $changed{$key}++; + my $value = $givenSettings{$key}; + next if !defined $value; + if (!exists $openslxConfig{$key}) { + die _tr("option '%s' is not known!", $key); + } + if ($key =~ m{^(base-path|config-path)$}) { + die _tr("option '%s' is fixed!", $key); + } + if (exists $configPattern{$key} && $value !~ m{$configPattern{$key}}) { + die _tr( + "option '%s' must match pattern '%s'!", $key, $configPattern{$key} + ); + } + + vlog(0, _tr("setting %s to '%s'", $key, $value)) unless $option{quiet}; + my $externalKey = externalKeyFor($key); + if (!exists $settings{$externalKey} || $settings{$externalKey} ne $value) { + $settings{$externalKey} = $value; + } + $changed{$key}++; } # reset specified keys to fall back to default: foreach my $key (@reset) { - my $externalKey = externalKeyFor($key); - if (exists $settings{$externalKey}) { - delete $settings{$externalKey}; - vlog(0, - _tr("removing option '%s' from local settings", $key)) - unless $option{quiet}; - } else { - vlog(0, - _tr("option '%s' didn't exist in local settings!", $key)) - unless $option{quiet}; - } - $changed{$key}++; + my $externalKey = externalKeyFor($key); + if (exists $settings{$externalKey}) { + delete $settings{$externalKey}; + vlog(0, + _tr("removing option '%s' from local settings", $key)) + unless $option{quiet}; + } else { + vlog(0, + _tr("option '%s' didn't exist in local settings!", $key)) + unless $option{quiet}; + } + $changed{$key}++; } # ... and write local settings file if necessary if (keys %changed) { - $configObj->save_file($fileName, \%settings); + $configObj->save_file($fileName, \%settings); - openslxInit(); + openslxInit(); - foreach my $key (keys %changed) { - changedHandler($key, $openslxConfig{$key}); - } + foreach my $key (keys %changed) { + changedHandler($key, $openslxConfig{$key}); + } } if (!keys %changed) { - print _tr("paths fixed at installation time:\n"); - print qq[\tbase-path='$openslxConfig{'base-path'}'\n]; - print qq[\tconfig-path='$openslxConfig{'config-path'}'\n]; - my $text = - keys %changed - ? "resulting base settings (cmdline options):\n" - : "current base settings (cmdline options):\n"; - print $text; - my @baseSettings = grep { exists $cmdlineConfig{$_} } keys %openslxConfig; - foreach my $key (sort @baseSettings) { - my $val = $openslxConfig{$key} || ''; - print qq[\t$key='$val'\n]; - } - print _tr("extended settings:\n"); - my @extSettings = grep { !exists $cmdlineConfig{$_} } keys %openslxConfig; - foreach my $key (sort @extSettings) { - next if $key =~ m[^(base-path|config-path)$]; - my $val = $openslxConfig{$key}; - if (defined $val) { - print qq[\t$key='$val'\n]; - } - else { - print qq[\t$key=<unset>\n]; - } - } + print _tr("paths fixed at installation time:\n"); + print qq[\tbase-path='$openslxConfig{'base-path'}'\n]; + print qq[\tconfig-path='$openslxConfig{'config-path'}'\n]; + my $text = + keys %changed + ? "resulting base settings (cmdline options):\n" + : "current base settings (cmdline options):\n"; + print $text; + my @baseSettings = grep { exists $cmdlineConfig{$_} } keys %openslxConfig; + foreach my $key (sort @baseSettings) { + my $val = $openslxConfig{$key} || ''; + print qq[\t$key='$val'\n]; + } + print _tr("extended settings:\n"); + my @extSettings = grep { !exists $cmdlineConfig{$_} } keys %openslxConfig; + foreach my $key (sort @extSettings) { + next if $key =~ m[^(base-path|config-path)$]; + my $val = $openslxConfig{$key}; + if (defined $val) { + print qq[\t$key='$val'\n]; + } + else { + print qq[\t$key=<unset>\n]; + } + } } sub externalKeyFor { - my $key = shift; + my $key = shift; - $key =~ tr[-][_]; - return "SLX_" . uc($key); + $key =~ tr[-][_]; + return "SLX_" . uc($key); } sub changedHandler { - my $key = shift; - my $value = shift; - - # invoke a key-specific change handler if it exists: - $key =~ tr[-][_]; - - # we do the following function call in an eval as that function may simply - # not exist: - eval { - no strict 'refs'; ## no critic (ProhibitNoStrict) - "${key}_changed_handler"->(); - }; - - return; + my $key = shift; + my $value = shift; + + # invoke a key-specific change handler if it exists: + $key =~ tr[-][_]; + + # we do the following function call in an eval as that function may simply + # not exist: + eval { + no strict 'refs'; ## no critic (ProhibitNoStrict) + "${key}_changed_handler"->(); + }; + + return; } sub private_path_changed_handler { - # create the default config folders (for default system only): - require OpenSLX::ConfigFolder; - OpenSLX::ConfigFolder::createConfigFolderForDefaultSystem(); + # create the default config folders (for default system only): + require OpenSLX::ConfigFolder; + OpenSLX::ConfigFolder::createConfigFolderForDefaultSystem(); - return; + return; } =head1 NAME |