X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm.git;a=blobdiff_plain;f=rpm-php-requires;h=330e49b2d17d300fa055f2c1da9d9d9a23996cf2;hp=f89d47bbf2a45837e7b079ebfd609407a85e751c;hb=e20230178f20195f064c83ebc294347a2f2429d1;hpb=d38e6aee259cc50e60e76381388ea399fcae936a diff --git a/rpm-php-requires b/rpm-php-requires index f89d47b..330e49b 100644 --- a/rpm-php-requires +++ b/rpm-php-requires @@ -1,19 +1,78 @@ -#!/bin/sh -if [ $# -lt 1 ]; then - echo "You have to specify input file" - exit 1 -fi +#!/usr/bin/perl -W +##################################################################### +# # +# Check system dependencies between php-pear/php-pecl modules # +# # +# Adam Go³êbiowski # +# # +# based on previous work by: # +# Pawe³ Go³aszewski # +# Micha³ Moskal # +# # +# ----------------------------------------------------------------- # +# ChangeLog: # +# 20031201: complete rewrite to use PEAR's package.xml, now handles # +# all dependencies, including PHP modules (like php-gmp), # +# and PECL extensions (adamg) # +##################################################################### -for i in `echo $@`; do - i=`echo $i | grep "\.php"` - if [ -n "$i" ]; then - j=`cat $i |grep -i ^require_once|egrep -v "^ \*"|sed -e "s/['|\"]//" |cut -f 2 -d " "|sed -e "s/\//_/g"|cut -f 1 -d "."` - if [ -n "$j" ]; then - for p in $j; do - echo "pear($p)" - done - j="" - fi - fi -done +@req_arr = (); +$fname = '/dev/null'; +foreach ( @ARGV ? $ARGV : <> ) +{ + $fname = $_ if (/package.xml/) +} +open F, $fname; + +while () { + if ( /\s+\([a-zA-Z0-9\_\-]*)\=" if ( $rel eq "ge"); + $relation = ">" if ( $rel eq "gt"); + $relation = "=" if ( $rel eq "has"); + # die if we were unable to substitute relations + die "ERROR: Unexpected relation! ($rel)\n" if ( $relation eq ""); + + $req = ""; + $relver = ""; + $relver = "$relation $version" if ( $version !~ /^$/ ); + $req = "$name $relver" if ( $type =~ /(php|prog)/ ); + $req = "php-$name $relver" if ( $type =~ /ext/ ); + $req = "php-pear-$name" if ( $type =~ /pkg/ ); + + push @req_arr, $req + + } +} +for $r (@req_arr) { print "$r\n"; }