#!/usr/bin/perl #- Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 MandrakeSoft SA #- Copyright (C) 2005-2010 Mandriva SA #- Copyright (C) 2011-2020 Mageia #- #- This program is free software; you can redistribute it and/or modify #- it under the terms of the GNU General Public License as published by #- the Free Software Foundation; either version 2, or (at your option) #- any later version. #- #- 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. #- this program is based upon old urpmi.addmedia use strict; use urpm; use urpm::msg; use urpm::download; use urpm::media; use urpm::args; $ENV{PATH} = "/sbin:/usr/sbin:/bin:/usr/bin"; delete @ENV{qw(ENV BASH_ENV IFS CDPATH)}; my @toremove; sub usage { my ($msg) = @_; print N("usage: urpmi.removemedia (-a | ...) where is a medium name to remove. ") . N(" --help - print this help message. ") . N(" -a - select all media. ") . N(" -y - fuzzy match on media names. ") . N(" -q - quiet mode. ") . N(" -v - verbose mode. ") . N(" --urpmi-root - use another root for urpmi db & rpm installation. ") . $msg; exit 1; } #- default option values $options{strict_match} = 1; our @cmdline; #- set by urpm::args my $urpm = urpm->new_parse_cmdline or exit(1); if ($< != 0) { $urpm->{fatal}(1, N("Only superuser is allowed to remove media")); } my $_urpmi_lock = urpm::lock::urpmi_db($urpm, 'exclusive', wait => $options{wait_lock}); urpm::media::read_config($urpm, 'nocheck'); urpm::download::set_cmdline_proxy(); my @entries = map { $_->{name} } @{$urpm->{media}}; if ($options{all}) { if (@cmdline) { usage(''); } elsif (!@entries) { print STDERR N("nothing to remove (use urpmi.addmedia to add a media)\n"); exit 0; } else { @toremove = @entries; } } else { @toremove = @cmdline or usage(N("the entry to remove is missing\n(one of %s)\n", join(", ", @entries))); } my @selected = urpm::media::select_media_by_name($urpm, \@toremove, !$urpm->{options}{fuzzy}) or exit 1; urpm::media::remove_media($urpm, \@selected); urpm::media::write_urpmi_cfg($urpm); exit(0);