From e10caa54ac4d34c803c021ce4848a2a8858827de Mon Sep 17 00:00:00 2001 From: Angelo Naselli Date: Fri, 29 Aug 2014 17:04:45 +0200 Subject: renamed from gurpmi.addmedia to dragora-urpm-addmedia and from edit-urpm-sources.pl to dragora-urpm-sources.pl fixed Makefile.PL and MANIFEST for all the changes --- modules/rpmdragora/dragora-urpm-addmedia | 170 +++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100755 modules/rpmdragora/dragora-urpm-addmedia (limited to 'modules/rpmdragora/dragora-urpm-addmedia') diff --git a/modules/rpmdragora/dragora-urpm-addmedia b/modules/rpmdragora/dragora-urpm-addmedia new file mode 100755 index 0000000..3aafbf2 --- /dev/null +++ b/modules/rpmdragora/dragora-urpm-addmedia @@ -0,0 +1,170 @@ +#!/usr/bin/perl +#***************************************************************************** +# +# Copyright (c) 2004 Guillaume Cottenceau (gc at mandrakesoft dot com) +# Copyright (c) 2006-2007 Thierry Vignaud +# Copyright (c) 2004-2007 Mandriva SA +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2, as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +#***************************************************************************** +# +# $Id: gurpmi.addmedia 261187 2009-10-01 14:44:34Z tv $ + +use strict; + +BEGIN { + @ARGV == 0 || "@ARGV" =~ /-h/ and do { + print "usage: gurpmi.addmedia [options] [with ] +where is one of + [file:/]/ + ftp://:\@/ + ftp:/// + http:/// + removable:// + +and [options] are from + --distrib install a set of media from a distribution + --silent-success don't show popup window on success + --update create an update medium, + or discard non-update media (when used with --distrib) + --mirrorlist is a mirror list +"; + exit(0); + }; +} +use AdminPanel::Rpmdragora::init; +use AdminPanel::Rpmdragora::open_db; +use AdminPanel::Rpmdragora::formatting; + +use AdminPanel::Privileges; + +use lib qw(/usr/lib/libDrakX); +use urpm::media; +use MDK::Common::Func; +use common qw(N); + +# +if (AdminPanel::Privileges::is_root_capability_required()) { + require AdminPanel::Shared::GUI; + my $sh_gui = AdminPanel::Shared::GUI->new(); + $sh_gui->warningMsgBox({ + title => "gurpmi.addmedia", + text => N("root privileges required"), + }); + exit (-1); +} + +use AdminPanel::rpmdragora; +use Getopt::Long; + +## TODO remove as soon as possible +$::isStandalone = 1; + +AdminPanel::rpmdragora::readconf(); + +my $fromfile; +if (@ARGV == 1 && $ARGV[0] =~ /\.urpmi-media$/) { + @ARGV = map { s/^\s*//; s/\s*$//; $_ } split /\n/, cat_($ARGV[0]); + $fromfile = 1; +} + +my ($update, $distrib, $silent_success) = (0, 0, 0); +my ($mirrorlist, $with_dir); + +GetOptions( + 'update' => \$update, + 'distrib' => \$distrib, + 'silent-success' => \$silent_success, + 'mirrorlist=s' => \$mirrorlist, + 'urpmi-root=s' => \$::rpmdragora_options{'urpmi-root'}[0], +); + +# compatibility with -update: +if ($ARGV[0] =~ /^-?-update/) { + $update = 1; + shift @ARGV; +} + +my @addmedia_args; +my @names; + +while (@ARGV) { + my ($name, $url) = @ARGV; + + if ($mirrorlist) { + ($with_dir, $url) = ($url, undef); + } elsif ($distrib) { + ($name, $url) = ('', $name); + } elsif ($url !~ m,^(([^:]*):/)?/,) { + AdminPanel::rpmdragora::interactive_msg('gurpmi.addmedia', + AdminPanel::Rpmdragora::formatting::escape_text_for_TextView_markup_format( + N("bad (for local directory, the path must be absolute)") . "\n\n$url")); + AdminPanel::rpmdragora::myexit(-1); + } + push @addmedia_args, [ $name, $url ]; + push @names, $name; + shift @ARGV foreach 1 .. 2; +} + +if ($mirrorlist && $distrib && !@addmedia_args) { + @addmedia_args = [ '' ]; +} + +$fromfile and do { + AdminPanel::rpmdragora::interactive_msg('gurpmi.addmedia', +N("%s + +Is it ok to continue?", +$distrib || !@names +? N("You are about to add new package media. +That means you will be able to add new software packages +to your system from these new media.") +: 1 < @names +? N("You are about to add new package medium, %s. +That means you will be able to add new software packages +to your system from these new media.", join ", ", @names) +: N("You are about to add a new package medium, `%s'. +That means you will be able to add new software packages +to your system from that new medium.", $names[0]) +), + yesno => 1) or AdminPanel::rpmdragora::myexit(-1); +}; + +my $urpm = AdminPanel::Rpmdragora::open_db::fast_open_urpmi_db(); +my $success = 1; +foreach (@addmedia_args) { + #- NB: that short circuits + $success = $success && AdminPanel::rpmdragora::add_medium_and_check( + $urpm, + { distrib => $distrib }, + $_->[0], + $_->[1], + MDK::Common::Func::if_(!$distrib, undef), + MDK::Common::Func::if_($update, update => $update, only_updates => $update), + mirrorlist => $mirrorlist, + MDK::Common::Func::if_($with_dir, 'with-dir' => $with_dir), + ); +} +if ($success) { + my $message = + $distrib ? N("Successfully added media.") + : @names > 1 + ? N("Successfully added media %s.", join ", ", @names) + : N("Successfully added medium `%s'.", $names[0]); + AdminPanel::rpmdragora::interactive_msg('gurpmi.addmedia', $message) if !$silent_success; + AdminPanel::rpmdragora::myexit(0); +} else { + AdminPanel::rpmdragora::myexit(-1); +} -- cgit v1.2.1