[wellwell-devel] [wellwell] Remove hardcoded directory name for plugins.

Stefan Hornburg wellwell-devel at rt.icdevgroup.org
Sun Oct 24 14:04:48 UTC 2010


commit 69f6ec56f186bdbc930198b1cf3a7364c9a493d7
Author: Stefan Hornburg (Racke) <racke at linuxia.de>
Date:   Sun Oct 24 15:21:00 2010 +0200

    Remove hardcoded directory name for plugins.
    Store plugin directory in returned hash from plugin_scan.

 lib/WellWell/Plugin.pm |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/lib/WellWell/Plugin.pm b/lib/WellWell/Plugin.pm
index 099f441..5c5e78e 100644
--- a/lib/WellWell/Plugin.pm
+++ b/lib/WellWell/Plugin.pm
@@ -31,7 +31,7 @@ our @EXPORT_OK = qw/plugin_scan plugin_enable/;
 sub plugin_scan {
 	my ($dbif, @dirs) = @_;
 	my (@plugins, $dirname, $infofile, $plugininfo, $dbref);
-	my ($plugin, $pluginrec);
+	my ($plugin, $plugin_dir, $pluginrec);
 	my ($sth, $href);
 	my (%plugins);
 	
@@ -45,26 +45,31 @@ sub plugin_scan {
 	for my $dir (@dirs) {
 		opendir(PLUGINS, $dir);
 		while ($dirname = readdir(PLUGINS)) {
-			next unless -d "plugins/$dirname";
+			next unless -d "$dir/$dirname";
 			next if $dirname =~ /^\./;
 
 			# info file ?
-			$infofile = "plugins/$dirname/$dirname.info";
+			$plugin_dir = "$dir/$dirname";
+			$infofile = "$plugin_dir/$dirname.info";
+			
 			if (-f $infofile) {
 				$plugininfo = plugin_get_info($infofile);
 
 				if (exists $plugins{$dirname}) {
 					# existing plugin
+					$plugins{$dirname}->{directory} = $plugin_dir;
 				}
 				else {
 					# new plugin
 					$pluginrec = {name => $dirname,
+								  directory => "plugins/$dirname",
 								  version => $plugininfo->{version},
 								  label => $plugininfo->{label} || $dirname,
 								  active => undef};
 
 					$dbif->insert('plugins', %$pluginrec);
 					
+					$pluginrec->{directory} = $plugin_dir;
 					$plugins{$dirname} = $pluginrec;
 				}
 			}



More information about the wellwell-devel mailing list