#!/usr/bin/perl
#
# Snd: auxiliary script to detect distribution flavor and version
#      [nando@ccrma.stanford.edu; 07/25/2001]
# so far tested on: RedHat 7.0, Mandrake 7.2, SuSE 7.0
# Change log:
# 06/14/2002: return only flavor and skip version
#
my($FLAVOR)="";
my($VERSION)="";

if (-e "/etc/SuSE-release") {
    #
    # SuSE
    #
    $FLAVOR="SuSE";
    $VERSION=&findVersion("/etc/SuSE-release");
    exit(&printName($FLAVOR, $VERSION));
} elsif (-e "/etc/redhat-release") {
    if (system("grep -i Mandrake /etc/redhat-release > /dev/null")==0) {
	#
	# Mandrake
	#
	$FLAVOR="Mandrake";
	$VERSION=&findVersion("/etc/redhat-release");
	exit(&printName($FLAVOR, ""));
    } else {
	#
	# RedHat
	#
	$FLAVOR="RedHat";
	$VERSION=&findVersion("/etc/redhat-release");
	exit(&printName($FLAVOR, ""));
    }
} else {
    #
    # Unknown system
    #
    print("\n");
    exit(1);
}

sub findVersion {
    my($file)=@_;
    my($line);
    if (open(F, "<$file")) {
	while ($line=<F>) {
	    if ($line=~/^.*release\s*(\d*\.\d*)/) {
		close(F);
		return($1);
	    }
	    if ($line=~/^VERSION\s*=\s*(.*)/) {
		close(F);
		return($1);
	    }
	}
	close(F);
    }
    return("");
}

sub printName {
    my($flavor, $version)=@_;
    if ($flavor ne "") {
	if ($version ne "") {
	    print("$flavor-$version\n");
	    return(0);
	} else {
	    # could not parse version number...
	    print("$flavor\n");
	    return(1);
	}
    } else {
	# could not find system type...
	print("\n");
	return(1);
    }
}
