Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:FrontRunner
avahi
update_spec.pl
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File update_spec.pl of Package avahi
#! /usr/bin/perl my $name = $ARGV[0]; $name =~ s,.*/,,; $name =~ s,\.spec.*,,; my %attributes = (); open(FILE, $ARGV[1]) || die 'no attributes'; my $pack = undef; my $text = undef; while ( <FILE> ) { if (/^\+(.*)$/) { $pack = $1; $text = ''; next } if (/^-(.*)$/) { if ($pack ne $1) { die "$pack and $1 do not match"; } $text =~ s,^\s*,,; $text =~ s,\s*$,,; $attributes{$pack} = $text; $text = undef; $pack = undef; next; } if (defined $text) { $text .= $_; } elsif (/^(\S*)\s*(.*)$/) { my $attr = $1; my $string = $2; $string =~ s,^\s*,,; $string =~ s,\s*$,,; $attributes{$attr} = $string; } } close(FILE); open(FILE, $ARGV[0]); sub description() { if (/^%description\s*(.*)\s*/) { my $suffix = $1; my $pname = $name; if ($suffix =~ m/-n\s*(.*)/) { $pname = $1; } else { $pname = "$name-$suffix" if ($suffix); } if (defined $attributes{"description.$pname"}) { print $_; my $descr = $attributes{"description.$pname"}; print "$descr\n"; $_ = ''; do { $_ = <FILE>; } while ( $_ !~ /^%/ && $_ !~ /^@/ ); print "\n"; description(); } } } # current subpackage my $pname = $name; while ( <FILE> ) { if (/^Name:\s*(.*)/) { $name = $1; $pname = $1; } description(); if (/^%package\s*(.*)/) { my $suffix = $1; if ($suffix =~ m/-n\s*(.*)/) { $pname = $1; } else { $pname = "$name-$1"; } } if (/^(Summary:\s*)(.*)$/) { if (defined $attributes{"summary.$pname"}) { print $1 . $attributes{"summary.$pname"} ."\n"; next; } } if (/^(License:\s*)(.*)$/) { if (defined $attributes{"license.$pname"}) { print $1 . $attributes{"license.$pname"} ."\n"; next; } } if (/^(Group:\s*)(.*)$/) { if (defined $attributes{"group.$pname"}) { print $1 . $attributes{"group.$pname"} ."\n"; next; } } print $_; } close(FILE);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor