]>
git.ipfire.org Git - ipfire-2.x.git/blob - src/pakfire/pakfire
21ab4110af10846865be981be4c2a7b3ad6af385
3 require "/opt/pakfire/lib/functions.pl";
7 &Pakfire
::logger
("PAKFIRE INFO: 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
("PAKFIRE ERROR: You must run pakfire as user root!");
19 ### Check if we are started by another name
21 if ( $0 =~ /pakfire-update$/ ) {
22 &Pakfire
::message
("CRON INFO: Running an update");
25 } elsif ( $0 =~ /pakfire-upgrade$/ ) {
26 &Pakfire
::message
("CRON INFO: Running an upgrade");
37 $interactive = 0 if ("$_" eq "--non-interactive");
38 $interactive = 0 if ("$_" eq "-y");
42 if ("$ARGV[0]" eq "install") {
45 ### Make sure that the list is not outdated.
46 &Pakfire
::dbgetlist
("noforce");
48 open(FILE
, "<$Conf::dbdir/lists/packages_list.db");
61 foreach $pak (@ARGV) {
62 unless ("$pak" =~ "^-") {
63 $return = &Pakfire
::isinstalled
($pak);
65 &Pakfire
::message
("PAKFIRE INFO: $pak is already installed");
70 @templine = split(/;/,$_);
71 if ("$templine[0]" eq "$pak" ) {
74 @temp = &Pakfire
::resolvedeps
("$pak");
75 foreach $dep (@temp) {
76 push(@deps,$dep) if $dep;
77 push(@all,$dep) if $dep;
84 &Pakfire
::message
("");
85 &Pakfire
::message
("PAKFIRE WARN: The pak \"$pak\" is not known. Please try running \"pakfire update\".");
91 &Pakfire
::message
("PAKFIRE ERROR: No packages to install. Exiting...");
95 &Pakfire
::message
("");
96 &Pakfire
::message
("");
97 &Pakfire
::message
("PAKFIRE INFO: Packages to install:");
98 foreach $pak (sort @paks) {
99 my $size = &Pakfire
::getsize
("$pak");
100 $size = &Pakfire
::beautifysize
($size);
101 &Pakfire
::message
("PAKFIRE INFO: $pak \t\t - $size");
105 my %sort = map{ $_, 1 } @deps;
106 @deps = sort keys %sort;
107 &Pakfire
::message
("");
108 &Pakfire
::message
("PAKFIRE INFO: Packages to install for dependencies:");
110 foreach $dep (sort @deps) {
111 my $size = &Pakfire
::getsize
("$dep");
112 $size = &Pakfire
::beautifysize
($size);
113 &Pakfire
::message
("PAKFIRE INFO: $dep \t\t - $size");
117 foreach $pak (@all) {
118 $totalsize = ($totalsize + &Pakfire
::getsize
("$pak"));
120 $totalsize = &Pakfire
::beautifysize
($totalsize);
121 &Pakfire
::message
("");
122 &Pakfire
::message
("PAKFIRE INFO: Total size: \t ~ $totalsize");
123 &Pakfire
::message
("");
126 &Pakfire
::message
("PAKFIRE INFO: Is this okay? [y/N]");
129 &Pakfire
::logger
("PAKFIRE INFO: Answer: $ret");
131 &Pakfire
::message
("PAKFIRE ERROR: Installation aborted.");
135 &Pakfire
::logger
("PAKFIRE INFO: Interaction skipped.");
138 my %sort = map{ $_, 1 } @all;
139 @all = sort keys %sort;
142 foreach $pak (sort @all) {
143 &Pakfire
::getpak
("$pak", "");
146 foreach $pak (sort @all) {
147 &Pakfire
::setuppak
("$pak") if ($pak ne "");
150 } elsif ("$ARGV[0]" eq "remove") {
156 foreach $pak (@ARGV) {
157 unless ("$pak" =~ "^-") {
158 $return = &Pakfire
::isinstalled
($pak);
160 &Pakfire
::message
("PAKFIRE WARN: $pak is not installed");
170 &Pakfire
::message
("PAKFIRE ERROR: No packages to remove. Exiting...");
174 &Pakfire
::message
("");
175 &Pakfire
::message
("");
176 &Pakfire
::message
("### Packages to remove:");
177 foreach $pak (sort @paks) {
178 my $size = &Pakfire
::getsize
("$pak");
179 $size = &Pakfire
::beautifysize
($size);
180 &Pakfire
::message
("# $pak \t\t - $size");
184 &Pakfire
::message
("Is this okay? [y/N]");
187 &Pakfire
::logger
("Answer: $ret");
189 &Pakfire
::message
("Installation aborted.");
194 foreach $pak (@paks) {
195 &Pakfire
::removepak
("$pak");
199 } elsif ("$ARGV[0]" eq "update") {
200 my $force = "noforce";
201 &Pakfire
::makeuuid
();
202 &Pakfire
::senduuid
();
203 &Pakfire
::getmirrors
();
204 $force = "force" if ("$ARGV[1]" eq "--force");
205 &Pakfire
::dbgetlist
("$force");
208 } elsif ("$ARGV[0]" eq "upgrade") {
209 my @upgradepaks = &Pakfire
::dblist
("upgrade", "noweb");
212 foreach (@upgradepaks) {
213 @temp = &Pakfire
::resolvedeps
("$_");
214 foreach (@temp) { push(@upgradepaks,$_) if $_; }
218 &Pakfire
::message
("");
219 &Pakfire
::message
("We are going to install all packages listed above.");
221 &Pakfire
::message
("Is this okay? [y/N]");
224 &Pakfire
::logger
("Answer: $ret");
226 &Pakfire
::message
("Installation aborted.");
233 foreach (sort @upgradepaks) {
234 &Pakfire
::getpak
("$_", "");
237 foreach (sort @upgradepaks) {
238 &Pakfire
::upgradepak
("$_");
241 } elsif ("$ARGV[0]" eq "list") {
242 &Pakfire
::dblist
("all", "noweb");
244 } elsif ("$ARGV[0]" eq "resolvedeps") {
246 next if ("$_" eq "resolvedeps");
247 &Pakfire
::resolvedeps
("$_");
253 &Pakfire
::message
("");