]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - src/pakfire/pakfire
Am Pakfire weitergearbeitet.
[people/pmueller/ipfire-2.x.git] / src / pakfire / pakfire
CommitLineData
c3df33af 1#!/usr/bin/perl
c1ae1ad6 2
1bd42c89
MT
3 require "/opt/pakfire/lib/functions.pl";
4
5 my $interactive = 1;
6
afabe9f7 7 &Pakfire::logger("### IPFire Pakfire $Conf::version started!");
c1ae1ad6 8
1bd42c89
MT
9 ### Check if we are running as root
10 #
11 my $user = qx(whoami);
12 chomp($user);
13 unless ( "$user" eq "root" ) {
14 &Pakfire::message("You must run pakfire as user root!");
15 exit 1;
16 }
17
18 unless (@ARGV) {
5b2a12ff 19 &Pakfire::usage;
1bd42c89 20 }
c1ae1ad6 21
1bd42c89 22 if ("$ARGV[0]" eq "install") {
5b2a12ff 23 &Pakfire::lock("on");
1bd42c89 24 shift;
a08c3a2e
MT
25 my @deps;
26 my @paks;
27 my @temp;
1bd42c89 28 foreach (@ARGV) {
5b2a12ff
MT
29 if ("$_" =~ "^--") {
30 $interactive = 0 if ("$_" eq "--non-interactive");
31 } else {
32 push(@paks,$_);
33 }
a08c3a2e
MT
34 }
35 foreach (@paks) {
36 @temp = &Pakfire::resolvedeps("$_");
37 foreach (@temp) { push(@deps,$_) if $_; }
1bd42c89
MT
38 }
39
a08c3a2e 40 my @all;
1bd42c89
MT
41 foreach (@paks) {
42 push(@all,$_);
43 }
44 foreach (@deps) {
45 push(@all,$_);
46 }
97520ed5 47
1bd42c89 48 &Pakfire::message("\n\n### Packages to install:");
a08c3a2e 49 foreach (sort @paks) {
1bd42c89
MT
50 my $size = &Pakfire::getsize("$_");
51 $size = &Pakfire::beautifysize($size);
52 &Pakfire::message("# $_ \t\t - $size");
53 }
54
55 &Pakfire::message("\n### Packages to install for dependencies:");
a08c3a2e 56 foreach (sort @deps) {
1bd42c89
MT
57 my $size = &Pakfire::getsize("$_");
58 $size = &Pakfire::beautifysize($size);
59 &Pakfire::message("# $_ \t\t - $size");
60 }
97520ed5 61
a08c3a2e 62 my $totalsize = &Pakfire::addsizes("@all");
1bd42c89
MT
63 $totalsize = &Pakfire::beautifysize($totalsize);
64 &Pakfire::message("\n### Download size: \t ~ $totalsize");
65
66 if ($interactive) {
67 &Pakfire::message("Is this okay? [y/N]");
68 my $ret = <STDIN>;
69 chomp($ret);
70 &Pakfire::logger("Answer: $ret");
71 if ( $ret ne "y" ) {
72 &Pakfire::message("Installation aborted.");
73 exit 1;
74 }
75 }
a08c3a2e
MT
76
77 ### Download first
78 foreach (sort @all) {
79 &Pakfire::message("# --> Downloading: $_");
80 &Pakfire::getpak("$_", "");
81 }
c1ae1ad6 82
a08c3a2e 83 foreach (sort @all) {
1bd42c89
MT
84 &Pakfire::setuppak("$_");
85 }
5b2a12ff 86 &Pakfire::lock("off");
1bd42c89
MT
87
88 } elsif ("$ARGV[0]" eq "remove") {
89
90
91 } elsif ("$ARGV[0]" eq "update") {
5b2a12ff 92 my $force = "noforce";
8e58bd37
MT
93 &Pakfire::makeuuid();
94 &Pakfire::senduuid();
c3df33af 95 &Pakfire::getmirrors();
5b2a12ff
MT
96 $force = "force" if ("$ARGV[1]" eq "--force");
97 &Pakfire::dbgetlist("$force");
afabe9f7
MT
98
99 } elsif ("$ARGV[0]" eq "list") {
5b2a12ff
MT
100 &Pakfire::dblist("all", "noweb");
101
102 } elsif ("$ARGV[0]" eq "resolvedeps") {
103 foreach (@ARGV) {
104 next if ("$_" eq "resolvedeps");
105 &Pakfire::resolvedeps("$_");
106 }
107
108 } else {
109 &Pakfire::usage;
1bd42c89 110 }