Update of /cvsroot/fink/fink/perlmod/Fink
In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv30307

Modified Files:
      Tag: selfupdate_classes
        ChangeLog SelfUpdate.pm 
Log Message:
Text param for check()


Index: SelfUpdate.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/SelfUpdate.pm,v
retrieving revision 1.117.2.1
retrieving revision 1.117.2.2
diff -u -d -r1.117.2.1 -r1.117.2.2
--- SelfUpdate.pm       6 Mar 2007 17:34:05 -0000       1.117.2.1
+++ SelfUpdate.pm       6 Mar 2007 17:54:09 -0000       1.117.2.2
@@ -88,7 +88,7 @@
 
 =back
 
-The optional $method parameter specifies a number indicating the
+The optional $method parameter specifies the
 selfupdate method to use:
 
 =over 4
@@ -97,11 +97,11 @@
 
 Use the current method
 
-=item 1
+=item 1 or "cvs"
 
 Use the cvs method
 
-=item 2
+=item 2 or "rsync"
 
 Use the rsync method
 
@@ -116,22 +116,38 @@
 =cut
 
 sub check {
-       my $useopt = shift || 0;
+       my $method = shift;
+
+       {
+               my %methods = (
+                       0       => undef,
+                       1       => 'cvs',
+                       2       => 'rsync',
+                       'cvs'   => 'cvs',
+                       'rsync' => 'rsync',
+               );
+               $method = 0 if ! defined $method;
+               if (! exists $methods{lc $method}) {
+                       die "Invalid method '$method' passed to 
Selfupdate::check\n";
+               }
+               $method = $methods{lc $method};
+       }
+
        my ($srcdir, $finkdir, $latest_fink, $installed_version, $answer);
 
        $srcdir = "$basepath/src";
        $finkdir = "$basepath/fink";
-       if ($useopt != 0) {
+       if (defined $method) {
                &print_breaking("\n Please note: the command 'fink selfupdate' "
                                . "should be used for routine updating; you 
only need to use " 
                                . "'fink selfupdate-cvs' or 'fink 
selfupdate-rsync' if you are "
                                . "changing your update method. \n\n");
        }
-       if ((! defined($config->param("SelfUpdateMethod") )) and ! $useopt == 
0){
-               if ($useopt == 1) {
+       if (! defined $config->param("SelfUpdateMethod") and defined $method) {
+               if ($method eq 'cvs') {
                        $answer = "cvs";        
                }
-               elsif ($useopt == 2) {
+               elsif ($method eq 'rsync') {
                        $answer = "rsync";
                }
                else {
@@ -145,7 +161,7 @@
 
        # The user has not chosen a selfupdatemethod yet, always ask
        # if the fink.conf setting is not there.
-       if ((! defined($config->param("SelfUpdateMethod") )) and $useopt == 0){
+       if (! defined $config->param("SelfUpdateMethod") and ! defined $method) 
{
                $answer = &prompt_selection("Choose an update method",
                                                intro   => "fink needs you to 
choose a SelfUpdateMethod.",
                                                default => [ value => "rsync" ],
@@ -167,7 +183,7 @@
        }
 
        # By now the config param SelfUpdateMethod should be set.
-       if (($config->param("SelfUpdateMethod") eq "cvs") and $useopt != 2){
+       if ($config->param("SelfUpdateMethod") eq 'cvs' and $method ne 'rsync') 
{
                &need_devtools('cvs');
                Fink::SelfUpdate::rsync->stamp_clear();
                if (-d "$finkdir/dists/CVS") {
@@ -180,7 +196,7 @@
                        return;
                }
        }
-       elsif (($config->param("SelfUpdateMethod") eq "rsync") and $useopt != 
1){
+       elsif ($config->param("SelfUpdateMethod") eq 'rsync' and $method ne 
'cvs'){
                &need_devtools('rsync');
                &do_direct_rsync();
                &do_finish();
@@ -189,7 +205,7 @@
        # Hm, we were called with a different option than the default :(
        $installed_version = &pkginfo_version();
        my $selfupdatemethod = $config->param("SelfUpdateMethod");
-       if (($selfupdatemethod ne "rsync") and $useopt == 2) {
+       if ($selfupdatemethod ne 'rsync' and $method eq 'rsync') {
 
        # We temporarily disable rsync updating for 10.5, until we've decided
        # how to handle it
@@ -212,7 +228,7 @@
                &do_finish();
                return;         
        }
-       if (($selfupdatemethod ne "cvs") and $useopt == 1) {
+       if ($selfupdatemethod ne 'cvs' and $method eq 'cvs') {
                $answer =
                        &prompt_boolean("The current selfupdate method is 
$selfupdatemethod. " 
                                        . "Do you wish to change the default 
selfupdate method ".

Index: ChangeLog
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/ChangeLog,v
retrieving revision 1.1439
retrieving revision 1.1439.2.1
diff -u -d -r1.1439 -r1.1439.2.1
--- ChangeLog   4 Mar 2007 22:03:13 -0000       1.1439
+++ ChangeLog   6 Mar 2007 17:54:09 -0000       1.1439.2.1
@@ -1,3 +1,9 @@
+2007-02-26  Daniel Macks  <[EMAIL PROTECTED]>
+
+       * SelfUpdate.pm: Use text-string params for check().
+       * SelfUpdate.pm, SelfUpdate/*.pm: Offload handling of stamp files
+       and removal of orphaned metadata into the method-specific classes.
+
 2007-03-04  Dave Morrison  <[EMAIL PROTECTED]>
 
        * FinkVersion.pm.in, PkgVersion.pm, Validation.pm: implement Info4


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Fink-commits mailing list
Fink-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-commits

Reply via email to