Update of /cvsroot/fink/fink/perlmod/Fink
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7168/perlmod/Fink
Modified Files:
ChangeLog Engine.pm PkgVersion.pm Scanpackages.pm
Log Message:
make scanpackages run on postinstall, when it's the first time the user is
running with AutoScanpackages
Index: Scanpackages.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/Scanpackages.pm,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- Scanpackages.pm 21 Mar 2006 21:05:35 -0000 1.9
+++ Scanpackages.pm 29 Mar 2006 23:00:45 -0000 1.10
@@ -73,6 +73,8 @@
Fink::Scanpackages->scan_dists($options, @dirs);
Fink::Scanpackages->scan_fink(%options);
+ my $path = Fink::Scanpackages->default_cache;
+
=head1 METHODS
=over 4
@@ -312,6 +314,22 @@
@dists);
}
+=item default_cache
+
+ my $path = Fink::Scanpackages->default_cache;
+
+Get the path to the file that is used by default for caching result of
+scan_fink.
+
+=cut
+
+sub default_cache {
+ my ($self) = @_;
+
+ $self->_ensure_fink;
+ return $Fink::Config::basepath . "/var/lib/fink/scanpackages.db";
+}
+
# Initialize the object
sub initialize {
my ($self, %opts) = @_;
@@ -353,15 +371,16 @@
# Make sure Fink is configured
#
# $sp->_ensure_fink;
+# Fink::Scanpackages->_ensure_fink;
sub _ensure_fink {
my ($self) = @_;
- unless ($self->{_fink_loaded}) {
+ unless (ref($self) && $self->{_fink_loaded}) {
require Fink::Config;
# Make sure fink has a config
&_use_fink() unless defined $Fink::Config::config;
- $self->{_fink_loaded} = 1;
+ $self->{_fink_loaded} = 1 if ref($self);
}
}
Index: PkgVersion.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/PkgVersion.pm,v
retrieving revision 1.545
retrieving revision 1.546
diff -u -d -r1.545 -r1.546
--- PkgVersion.pm 24 Mar 2006 23:23:32 -0000 1.545
+++ PkgVersion.pm 29 Mar 2006 23:00:45 -0000 1.546
@@ -5039,7 +5039,7 @@
if ($autoscan && apt_available) {
require Fink::Engine; # yuck
- Fink::Engine::scanpackages(0, keys %built_trees);
+ Fink::Engine::scanpackages({}, [ keys %built_trees ]);
Fink::Engine::aptget_update();
}
%built_trees = ();
Index: Engine.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/Engine.pm,v
retrieving revision 1.370
retrieving revision 1.371
diff -u -d -r1.370 -r1.371
--- Engine.pm 28 Mar 2006 20:47:52 -0000 1.370
+++ Engine.pm 29 Mar 2006 23:00:44 -0000 1.371
@@ -659,33 +659,40 @@
=cut
sub cmd_scanpackages {
- scanpackages(0, @_);
+ scanpackages({}, [EMAIL PROTECTED]);
aptget_update;
}
=item scanpackages
- scanpackages $quiet, @trees;
+ scanpackages $opts, [EMAIL PROTECTED];
Update the apt-get package database in the given trees.
=cut
sub scanpackages {
- my ($quiet, @treelist) = @_;
+ my $opts = shift || { };
+ my $trees = shift || [ ];
+ # Don't scan restrictive if it's unwanted
+ if (!exists $opts->{restrictive}
+ && $config->has_param('ScanRestrictivePackages')
+ && !$config->param_boolean('ScanRestrictivePackages')) {
+ $opts->{restrictive} = 0;
+ }
+
# Use lowest verbosity
- $quiet = $config->verbosity_level if $quiet > $config->verbosity_level;
- print STDERR "Updating the list of locally available binary packages.\n"
- unless $quiet > 1; # very quiet!
+ if (!exists $opts->{verbosity}) {
+ my $v = $config->verbosity_level;
+ $v = 1 if $v > 1; # Only allow > 1 if given as an explicit
option
+ $opts->{verbosity} = $v;
+ }
+
+ print STDERR "Updating the list of locally available binary
packages.\n";
# Run scanpackages
- my $restrictive = !$config->has_param('ScanRestrictivePackages')
- || $config->param_boolean('ScanRestrictivePackages');
- Fink::Scanpackages->scan_fink({
- verbosity => !$quiet,
- restrictive => $restrictive
- }, @treelist);
+ Fink::Scanpackages->scan_fink($opts, @$trees);
}
### package-related commands
@@ -1275,7 +1282,7 @@
print "Skipping scanpackages and in dryrun mode\n";
} else {
if (apt_available) {
- scanpackages(1);
+ scanpackages({ verbosity => 0 });
aptget_update(1);
}
}
Index: ChangeLog
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/ChangeLog,v
retrieving revision 1.1313
retrieving revision 1.1314
diff -u -d -r1.1313 -r1.1314
--- ChangeLog 29 Mar 2006 17:30:49 -0000 1.1313
+++ ChangeLog 29 Mar 2006 23:00:44 -0000 1.1314
@@ -1,3 +1,9 @@
+2006-03-29 Dave Vasilevsky <[EMAIL PROTECTED]>
+
+ * Scanpackages.pm: Provide a way to get the path to the default cache.
+ * Engine.pm: Make Engine::scanpackages more flexible.
+ * Engine.pm, PkgVersion.pm: Accommodate changes to Engine::scanpackages.
+
2006-03-29 Dave Morrison <[EMAIL PROTECTED]>
* Config.pm: Avoid circular dependency
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Fink-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fink-commits