]>
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!");
25 $interactive = 0 if ("$_" eq "--non-interactive");
26 $interactive = 0 if ("$_" eq "-y");
30 if ("$ARGV[0]" eq "install") {
34 ### Make sure that the list is not outdated.
35 &Pakfire
::dbgetlist
("noforce");
37 open(FILE
, "<$Conf::dbdir/lists/packages_list.db");
49 foreach $pak (@ARGV) {
50 unless ("$pak" =~ "^-") {
53 @templine = split(/;/,$_);
54 if ("$templine[0]" eq "$pak" ) {
57 @temp = &Pakfire
::resolvedeps
("$pak");
58 foreach $dep (@temp) {
59 push(@deps,$dep) if $dep;
60 push(@all,$dep) if $dep;
66 &Pakfire
::message
("\nThe pak \"$pak\" is not known. Please try running \"pakfire update\".") if ($found == 0);
70 &Pakfire
::message
("\n\n### Packages to install:");
71 foreach (sort @paks) {
72 my $size = &Pakfire
::getsize
("$_");
73 $size = &Pakfire
::beautifysize
($size);
74 &Pakfire
::message
("# $_ \t\t - $size");
77 &Pakfire
::message
("\n### Packages to install for dependencies:") if @deps;
78 foreach (sort @deps) {
79 my $size = &Pakfire
::getsize
("$_");
80 $size = &Pakfire
::beautifysize
($size);
81 &Pakfire
::message
("# $_ \t\t - $size");
86 $totalsize = ($totalsize + &Pakfire
::getsize
("$_"));
88 $totalsize = &Pakfire
::beautifysize
($totalsize);
89 &Pakfire
::message
("\n### Total size: \t ~ $totalsize\n");
92 &Pakfire
::message
("Is this okay? [y/N]");
95 &Pakfire
::logger
("Answer: $ret");
97 &Pakfire
::message
("Installation aborted.");
103 foreach (sort @all) {
104 &Pakfire
::message
("# --> Downloading: $_");
105 &Pakfire
::getpak
("$_", "");
108 foreach (sort @all) {
109 &Pakfire
::setuppak
("$_");
111 &Pakfire
::lock("off");
113 } elsif ("$ARGV[0]" eq "remove") {
116 } elsif ("$ARGV[0]" eq "update") {
117 my $force = "noforce";
118 &Pakfire
::makeuuid
();
119 &Pakfire
::senduuid
();
120 &Pakfire
::getmirrors
();
121 $force = "force" if ("$ARGV[1]" eq "--force");
122 &Pakfire
::dbgetlist
("$force");
125 } elsif ("$ARGV[0]" eq "upgrade") {
126 my @upgradepaks = &Pakfire
::dblist
("upgrade", "noweb");
129 foreach (@upgradepaks) {
130 @temp = &Pakfire
::resolvedeps
("$_");
131 foreach (@temp) { push(@upgradepaks,$_) if $_; }
135 &Pakfire
::message
("");
136 &Pakfire
::message
("We are going to install all packages listed above.");
138 &Pakfire
::message
("Is this okay? [y/N]");
141 &Pakfire
::logger
("Answer: $ret");
143 &Pakfire
::message
("Installation aborted.");
150 foreach (sort @upgradepaks) {
151 &Pakfire
::message
("# --> Downloading: $_");
152 &Pakfire
::getpak
("$_", "");
155 foreach (sort @upgradepaks) {
156 &Pakfire
::upgradepak
("$_");
159 } elsif ("$ARGV[0]" eq "list") {
160 &Pakfire
::dblist
("all", "noweb");
162 } elsif ("$ARGV[0]" eq "resolvedeps") {
164 next if ("$_" eq "resolvedeps");
165 &Pakfire
::resolvedeps
("$_");