[Slim-Checkins] r11036 - /trunk/server/Slim/bootstrap.pm

adrian at svn.slimdevices.com adrian at svn.slimdevices.com
Sat Dec 23 12:30:16 PST 2006


Author: adrian
Date: Sat Dec 23 12:30:16 2006
New Revision: 11036

URL: http://svn.slimdevices.com?rev=11036&view=rev
Log:
Bug: N/A
Description: after startup warn on failure to load any module

Modified:
    trunk/server/Slim/bootstrap.pm

Modified: trunk/server/Slim/bootstrap.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/bootstrap.pm?rev=11036&r1=11035&r2=11036&view=diff
==============================================================================
--- trunk/server/Slim/bootstrap.pm (original)
+++ trunk/server/Slim/bootstrap.pm Sat Dec 23 12:30:16 2006
@@ -132,8 +132,8 @@
 
 	# Try and load the modules - some will fail if we don't include the
 	# binaries for that version/architecture combo
-	my @required_failed = tryModuleLoad(@$required_modules);
-	my @optional_failed = tryModuleLoad(@$optional_modules);
+	my @required_failed = tryModuleLoad(@$required_modules, 'nowarn');
+	my @optional_failed = tryModuleLoad(@$optional_modules, 'nowarn');
 
 	if ($d_startup) {
 		print "The following modules are loaded after the first attempt:\n";
@@ -152,8 +152,8 @@
 	# Remove our paths so we can try loading the failed modules from the default system @INC
 	splice(@INC, 0, scalar @SlimINC);
 
-	my @required_really_failed = tryModuleLoad(@required_failed);
-	my @optional_really_failed = tryModuleLoad(@optional_failed);
+	my @required_really_failed = tryModuleLoad(@required_failed, 'nowarn');
+	my @optional_really_failed = tryModuleLoad(@optional_failed, 'nowarn');
 
 	if ($d_startup) {
 		print "The following modules are loaded after the second attempt:\n";
@@ -217,6 +217,9 @@
 sub tryModuleLoad {
 	my @modules = @_;
 
+	# if called from loadModules don't warn for modules which fail to load
+	my $warnOnFail = (@modules && $modules[$#modules] eq 'nowarn' && pop @modules) ? 0 : 1;
+
 	my @failed  = ();
 
 	my (%oldINC, @newModules);
@@ -240,9 +243,9 @@
 
 		if ($@) {
 
-			if ($d_startup || $module =~ /^Slim::Display::/ || ($::d_plugins && $module =~ /^Plugins::/)) {
-
-				warn "Module [$module] failed to load: [$@]\n";
+			if ($d_startup || $warnOnFail) {
+
+				print STDERR "Module [$module] failed to load:\n$@\n";
 			}
 
 			# NB: More FC5 / SELinux - in case the above chcon doesn't work.



More information about the checkins mailing list