[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