]>
git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - src/pakfire/pakfire
3 require "/opt/pakfire/lib/functions.pl";
7 &Pakfire
::logger
("### IPFire Pakfire $Conf::version started!");
8 &Pakfire
::checkcryptodb
;
10 ### Check if we are running as root
12 my $user = qx(whoami
);
14 unless ( "$user" eq "root" ) {
15 &Pakfire
::message
("You must run pakfire as user root!");
19 ### Check if there are running some other pakfire processes
21 #my $return = `pidof pakfire`;
24 # &Pakfire::message("There are running some other pakfire processes...");
28 ### Check if we are started by another name
30 if ( $0 =~ /pakfire-update$/ ) {
31 &Pakfire
::message
("Running an update started by fcron.");
34 } elsif ( $0 =~ /pakfire-upgrade$/ ) {
35 &Pakfire
::message
("Running an upgrade started by fcron.");
46 $interactive = 0 if ("$_" eq "--non-interactive");
47 $interactive = 0 if ("$_" eq "-y");
51 if ("$ARGV[0]" eq "install") {
54 ### Make sure that the list is not outdated.
55 &Pakfire
::dbgetlist
("noforce");
57 open(FILE
, "<$Conf::dbdir/lists/packages_list.db");
70 foreach $pak (@ARGV) {
71 unless ("$pak" =~ "^-") {
72 $return = &Pakfire
::isinstalled
($pak);
74 &Pakfire
::message
("Package $pak is already installed.");
79 @templine = split(/;/,$_);
80 if ("$templine[0]" eq "$pak" ) {
83 @temp = &Pakfire
::resolvedeps
("$pak");
84 foreach $dep (@temp) {
85 push(@deps,$dep) if $dep;
86 push(@all,$dep) if $dep;
92 &Pakfire
::message
("");
93 &Pakfire
::message
("The pak \"$pak\" is not known. Please try running \"pakfire update\".") if ($found == 0);
98 &Pakfire
::message
("No packages to install. Exiting...");
102 &Pakfire
::message
("");
103 &Pakfire
::message
("");
104 &Pakfire
::message
("### Packages to install:");
105 foreach $pak (sort @paks) {
106 my $size = &Pakfire
::getsize
("$pak");
107 $size = &Pakfire
::beautifysize
($size);
108 &Pakfire
::message
("# $pak \t\t - $size");
112 my %sort = map{ $_, 1 } @deps;
113 @deps = sort keys %sort;
114 &Pakfire
::message
("");
115 &Pakfire
::message
("### Packages to install for dependencies:");
117 foreach $dep (sort @deps) {
118 my $size = &Pakfire
::getsize
("$dep");
119 $size = &Pakfire
::beautifysize
($size);
120 &Pakfire
::message
("# $dep \t\t - $size");
124 foreach $pak (@all) {
125 $totalsize = ($totalsize + &Pakfire
::getsize
("$pak"));
127 $totalsize = &Pakfire
::beautifysize
($totalsize);
128 &Pakfire
::message
("");
129 &Pakfire
::message
("### Total size: \t ~ $totalsize");
130 &Pakfire
::message
("");
133 &Pakfire
::message
("Is this okay? [y/N]");
136 &Pakfire
::logger
("Answer: $ret");
138 &Pakfire
::message
("Installation aborted.");
143 my %sort = map{ $_, 1 } @all;
144 @all = sort keys %sort;
147 foreach $pak (sort @all) {
148 &Pakfire
::message
("# --> Downloading: $pak");
149 &Pakfire
::getpak
("$pak", "");
152 foreach $pak (sort @all) {
153 &Pakfire
::setuppak
("$pak") if ($pak ne "");
156 } elsif ("$ARGV[0]" eq "remove") {
162 foreach $pak (@ARGV) {
163 unless ("$pak" =~ "^-") {
164 $return = &Pakfire
::isinstalled
($pak);
166 &Pakfire
::message
("Package $pak is not installed.");
176 &Pakfire
::message
("No packages to remove. Exiting...");
180 &Pakfire
::message
("");
181 &Pakfire
::message
("");
182 &Pakfire
::message
("### Packages to remove:");
183 foreach $pak (sort @paks) {
184 my $size = &Pakfire
::getsize
("$pak");
185 $size = &Pakfire
::beautifysize
($size);
186 &Pakfire
::message
("# $pak \t\t - $size");
190 &Pakfire
::message
("Is this okay? [y/N]");
193 &Pakfire
::logger
("Answer: $ret");
195 &Pakfire
::message
("Installation aborted.");
200 foreach $pak (@paks) {
201 &Pakfire
::removepak
("$pak");
205 } elsif ("$ARGV[0]" eq "update") {
206 my $force = "noforce";
207 &Pakfire
::makeuuid
();
208 &Pakfire
::senduuid
();
209 &Pakfire
::getmirrors
();
210 $force = "force" if ("$ARGV[1]" eq "--force");
211 &Pakfire
::dbgetlist
("$force");
214 } elsif ("$ARGV[0]" eq "upgrade") {
215 my @upgradepaks = &Pakfire
::dblist
("upgrade", "noweb");
218 foreach (@upgradepaks) {
219 @temp = &Pakfire
::resolvedeps
("$_");
220 foreach (@temp) { push(@upgradepaks,$_) if $_; }
224 &Pakfire
::message
("");
225 &Pakfire
::message
("We are going to install all packages listed above.");
227 &Pakfire
::message
("Is this okay? [y/N]");
230 &Pakfire
::logger
("Answer: $ret");
232 &Pakfire
::message
("Installation aborted.");
239 foreach (sort @upgradepaks) {
240 &Pakfire
::message
("# --> Downloading: $_");
241 &Pakfire
::getpak
("$_", "");
244 foreach (sort @upgradepaks) {
245 &Pakfire
::upgradepak
("$_");
248 } elsif ("$ARGV[0]" eq "list") {
249 &Pakfire
::dblist
("all", "noweb");
251 } elsif ("$ARGV[0]" eq "resolvedeps") {
253 next if ("$_" eq "resolvedeps");
254 &Pakfire
::resolvedeps
("$_");