X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fpakfire%2Fpakfire;h=75d7fd6ad27e51a877a698484e89879a3119bd27;hb=c3df33af1cb4f3701a0f2df56301dfa6626a9ddc;hp=af00031aa5e9c9aea109c54a5555fb1a41784d5c;hpb=b34fd95d16b55a0006f73612c3b8203677ed1480;p=people%2Fpmueller%2Fipfire-2.x.git diff --git a/src/pakfire/pakfire b/src/pakfire/pakfire index af00031aa5..75d7fd6ad2 100644 --- a/src/pakfire/pakfire +++ b/src/pakfire/pakfire @@ -1,18 +1,83 @@ -#!/bin/bash -############################################################################################ -# Version 0.1a, Copyright (C) 2006 by IPFire.org # -# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen. # -############################################################################################ +#!/usr/bin/perl -case "$1" in + require "/opt/pakfire/lib/functions.pl"; + + my $interactive = 1; + + &Pakfire::message("### Welcome to IPFire Pakfire $Conf::version!"); - update) $(get_conf.sh HOME)/lib/get_mirror.sh - $(get_conf.sh HOME)/lib/get_list.sh - $(get_conf.sh HOME)/lib/check_pak.sh - ;; + ### Check if we are running as root + # + my $user = qx(whoami); + chomp($user); + unless ( "$user" eq "root" ) { + &Pakfire::message("You must run pakfire as user root!"); + exit 1; + } + + unless (@ARGV) { + &Pakfire::message("Usage: pakfire "); + &Pakfire::message(" "); + &Pakfire::message(" "); + exit 1; + } - *) echo -e "IPFire - Pakfire\nHilfe:\npakfire install [Paket]\t- Installiert ein neues Paket.\npakfire update\t\t- Lädt die Liste aller Pakete neu.\npakfire remove [Paket]\t- Deinstalliert ein Paket.\npakfire upgrade\t\t- Überprüft nach neuen Updates." + if ("$ARGV[0]" eq "install") { + shift; + my @deps = (); + my @paks = @ARGV; + foreach (@ARGV) { + @deps = &Pakfire::resolvedeps("$_"); + } + + my @all = (); + foreach (@paks) { + push(@all,$_); + } + foreach (@deps) { + push(@all,$_); + } -esac + &Pakfire::message("\n\n### Packages to install:"); + foreach (@paks) { + my $size = &Pakfire::getsize("$_"); + $size = &Pakfire::beautifysize($size); + &Pakfire::message("# $_ \t\t - $size"); + } + + &Pakfire::message("\n### Packages to install for dependencies:"); + foreach (@deps) { + my $size = &Pakfire::getsize("$_"); + $size = &Pakfire::beautifysize($size); + &Pakfire::message("# $_ \t\t - $size"); + } -################################### EOF #################################################### + my $totalsize = &Pakfire::addsizes(@all); + $totalsize = &Pakfire::beautifysize($totalsize); + &Pakfire::message("\n### Download size: \t ~ $totalsize"); + + if ($interactive) { + &Pakfire::message("Is this okay? [y/N]"); + my $ret = ; + chomp($ret); + &Pakfire::logger("Answer: $ret"); + if ( $ret ne "y" ) { + &Pakfire::message("Installation aborted."); + exit 1; + } + } + + &Pakfire::message("### Installing all packages:"); + + foreach (@all) { + &Pakfire::setuppak("$_"); + } + + + } elsif ("$ARGV[0]" eq "remove") { + + + } elsif ("$ARGV[0]" eq "update") { + &Pakfire::getmirrors(); + &Pakfire::dbgetlist(); + }