From 747dc164efed8ee9d47a7414e84f464210ebe37c Mon Sep 17 00:00:00 2001 From: Nicolas Vigier Date: Fri, 11 Jan 2013 00:44:18 +0000 Subject: Add a script to rename an rpm group --- rename-rpm-group | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100755 rename-rpm-group diff --git a/rename-rpm-group b/rename-rpm-group new file mode 100755 index 0000000..f922cbb --- /dev/null +++ b/rename-rpm-group @@ -0,0 +1,79 @@ +#!/usr/bin/perl -w + +# This script can be used to rename an rpm group. It takes as 1st and +# 2nd argument the old and new group names, and will output on stdout a +# script to do the change. +# +# $ ./rename-rpm-group oldgroup newgroup > rename-group-blabla.sh + +use strict; +use URPM; +use MDK::Common; + +exit 1 unless @ARGV == 2; +my $oldgrp = $ARGV[0]; +my $newgrp = $ARGV[1]; + +my @mediasdirs = ( + '/distrib/mirror/distrib/cauldron/x86_64/media', + '/distrib/mirror/distrib/cauldron/i586/media', + '/distrib/mirror/distrib/cauldron/SRPMS/', +); +my $svnurl = 'svn+ssh://svn.mageia.org/svn/packages/cauldron'; + +sub get_packages_by_group { + my ($groupname) = @_; + my $urpm = URPM->new; + + foreach my $mediasdir (@mediasdirs) { + foreach (glob("$mediasdir/*/*/media_info/hdlist.cz")) { + print STDERR "parse hdlist $_\n"; + $urpm->parse_hdlist($_); + } + } + + my %res; + $urpm->traverse(sub { + if ($_[0]->group eq $groupname) { + my $name; + if ($_[0]->sourcerpm) { + $name = $_[0]->sourcerpm; + $name =~ s/-([^-]+-[^-]+)$//; + } else { + $name = $_[0]->name; + } + $res{$name} = 1; + } + }); + + keys %res; +} + +sub print_update_group_cmd { + my ($pkgname, $oldgrp, $newgrp) = @_; + print < $newgrp' +cd /tmp +rm -Rf \$tmpdir + +EOF +} + +print <