#!/bin/sh
# -*- perl -*-
# This code allows us to start perl from our path or an environment variable
# rather than hardcoding a path into the #! line.  It works from sh or csh.
(exit $?0) && eval 'exec ${QPERLQ-perl} -x $0 ${1+"$@"}'
if (! $?QPERLQ) setenv QPERLQ perl
exec $QPERLQ -x $0 $argv:q

#!/usr/local/bin/perl -w
#
# $Id: rpm_installed,v 1.1 1998/09/12 12:52:49 ejb Exp $
# $Source: /home/ejb/scripts/RCS/rpm_installed,v $
# $Author: ejb $
#

require 5.002;
use strict;

my $whoami = ($0 =~ m,([^/\\]*)$,) ? $1 : $0;
#my $dirname = ($0 =~ m,(.*)[/\\][^/\\]+$,) ? $1 : ".";

my $silent = 0;
my @rpms = ();

my $arg;
while (@ARGV)
{
    my $arg = shift(@ARGV);
    if ($arg eq "-q")
    {
	$silent = 1;
    }
    else
    {
	push(@rpms, $arg);
	if (@rpms > 1)
	{
	    &usage();
	}
    }
}

if (@rpms == 0)
{
    &usage();
}

my $rpm = $rpms[0];
my @rpm_data = &parse_rpm_filename($rpm);
my $base = undef;
if (@rpm_data)
{
    $base = $rpm_data[0];
}
else
{
    $base = $rpm;
}
print "$base: " unless $silent;
chop(my $output = `rpm -q $base 2>/dev/null`);
if ($? == 0)
{
    @rpm_data = &parse_rpm_filename($output);
    if (@rpm_data != 2)
    {
	die "$whoami: error processing rpm's output\n"
	}
    print $rpm_data[1], "\n" unless $silent;
}
else
{
    print "not installed\n" unless $silent;
    exit 2;
}
exit 0;

sub parse_rpm_filename
{
    my $file = shift;
    if ($file =~ m/^(.+)-([^-]+-[^-]+)(\.\w+\.rpm)?$/)
    {
	($1, $2);
    }
    else
    {
	();
    }
}

sub usage
{
    die "Usage: $whoami [-q] rpm\n";
}
