]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/pakfire/pakfire
Samba-Update auf neues Patchlevel. Jaja, die Sicherheitsluecken oder sowas...
[ipfire-2.x.git] / src / pakfire / pakfire
index 94f8558eff93180a4d61575516ca9f119bc37ad1..cdf0b619c3bb8574a1d8dc625149c2af33fe6dc1 100644 (file)
@@ -4,7 +4,8 @@
        
        my $interactive = 1;
        
-       &Pakfire::message("### Welcome to IPFire Pakfire $Conf::version!");
+       &Pakfire::logger("### IPFire Pakfire $Conf::version started!");
+       &Pakfire::checkcryptodb;
 
        ### Check if we are running as root
        #
        }
        
        unless (@ARGV) {
-         &Pakfire::message("Usage: pakfire <install|remove> <pak(s)>");
-         &Pakfire::message("               <update>");
-         &Pakfire::message("               <upgrade>");
-         exit 1;
+               &Pakfire::usage;
+       }
+       
+       foreach (@ARGV) {
+               if ("$_" =~ "^-") {
+                       $interactive = 0 if ("$_" eq "--non-interactive");
+                       $interactive = 0 if ("$_" eq "-y");
+               }
        }
 
        if ("$ARGV[0]" eq "install") {
+               &Pakfire::lock("on");
                shift;
                my @deps;
                my @paks;
                my @temp;
+               my @all;
                foreach (@ARGV) {
-                       push(@paks,$_);
+                       unless ("$_" =~ "^-") {
+                               push(@paks,$_) if $_;
+                       }
                }
+               
                foreach (@paks) {
                        @temp = &Pakfire::resolvedeps("$_");
                        foreach (@temp) { push(@deps,$_) if $_; }
                }
                
-               my @all;
                foreach (@paks) {
-                 push(@all,$_);
+                 push(@all,$_) if $_;
                }
                foreach (@deps) {
-                 push(@all,$_);
+                 push(@all,$_) if $_;
                }
 
                &Pakfire::message("\n\n### Packages to install:");
                  &Pakfire::message("# $_  \t\t - $size");
                }
                
-               &Pakfire::message("\n### Packages to install for dependencies:");
+               &Pakfire::message("\n### Packages to install for dependencies:") if @deps;
                foreach (sort @deps) {
                  my $size = &Pakfire::getsize("$_");
                        $size = &Pakfire::beautifysize($size);
                  &Pakfire::message("# $_  \t\t - $size");
                }
-
-               my $totalsize = &Pakfire::addsizes("@all");
+               
+               my $totalsize;
+               foreach (@all) {
+                       $totalsize = ($totalsize + &Pakfire::getsize("$_"));
+               }
                $totalsize = &Pakfire::beautifysize($totalsize);
-               &Pakfire::message("\n### Download size: \t ~ $totalsize");
+               &Pakfire::message("\n### Total size: \t ~ $totalsize\n");
                
                if ($interactive) {
                  &Pakfire::message("Is this okay? [y/N]");
                          exit 1;
                        }
                }
-               
-               &Pakfire::message("### Installing all packages:");
-               foreach (sort @all) { &Pakfire::message("# --> $_"); }
-               &Pakfire::message("");
 
                ### Download first
                foreach (sort @all) {
                foreach (sort @all) {
                        &Pakfire::setuppak("$_");
                }
-
+               &Pakfire::lock("off");
                
        } elsif ("$ARGV[0]" eq "remove") {
        
        
        } elsif ("$ARGV[0]" eq "update") {
+               my $force = "noforce";
                &Pakfire::makeuuid();
                &Pakfire::senduuid();
                &Pakfire::getmirrors();
-               &Pakfire::dbgetlist();
+               $force = "force" if ("$ARGV[1]" eq "--force");
+               &Pakfire::dbgetlist("$force");
+               
+       
+       } elsif ("$ARGV[0]" eq "upgrade") {
+               &Pakfire::dblist("upgrade", "noweb");
+               
+       } elsif ("$ARGV[0]" eq "list") {
+               &Pakfire::dblist("all", "noweb");
+               
+       } elsif ("$ARGV[0]" eq "resolvedeps") {
+               foreach (@ARGV) {
+                       next if ("$_" eq "resolvedeps");
+                       &Pakfire::resolvedeps("$_");
+               }
+               
+       } else {
+               &Pakfire::usage;
        }