mirror of
				https://github.com/ElvishArtisan/rivendell.git
				synced 2025-11-04 16:14:03 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			149 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/perl -W
 | 
						|
 | 
						|
# get_distro.pl
 | 
						|
# 
 | 
						|
# Try to determine the distribution name and version of the host machine.
 | 
						|
# Used as part of the AR_GET_DISTRO() macro.
 | 
						|
#
 | 
						|
#   (C) Copyright 2012,2016 Fred Gleason <fredg@salemradiolabs.com>
 | 
						|
#
 | 
						|
#   This program is free software; you can redistribute it and/or modify
 | 
						|
#   it under the terms of the GNU General Public License as
 | 
						|
#   published by the Free Software Foundation; either version 2 of
 | 
						|
#   the License, or (at your option) any later version.
 | 
						|
#
 | 
						|
#   This program is distributed in the hope that it will be useful,
 | 
						|
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
#   GNU General Public License for more details.
 | 
						|
#
 | 
						|
#   You should have received a copy of the GNU General Public
 | 
						|
#   License along with this program; if not, write to the Free Software
 | 
						|
#   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
						|
#
 | 
						|
 | 
						|
#USAGE: get_distro.pl NAME|VERSION|MAJOR|MINOR|POINT
 | 
						|
 | 
						|
if($ARGV[0] eq "NAME") {
 | 
						|
    if(!system("test","-f","/etc/SuSE-release")) {
 | 
						|
	print "SuSE";
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
    if(!system("test","-f","/etc/debian_version")) {
 | 
						|
	print "Debian";
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
    if(!system("test","-f","/etc/redhat-release")) {
 | 
						|
	print "RedHat";
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
if($ARGV[0] eq "VERSION") {
 | 
						|
    if(!system("test","-f","/etc/SuSE-release")) {
 | 
						|
	print &GetVersion("/etc/SuSE-release");
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
    if(!system("test","-f","/etc/debian_version")) {
 | 
						|
	print &GetVersion("/etc/debian_version");
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
    if(!system("test","-f","/etc/redhat-release")) {
 | 
						|
	print &GetVersion("/etc/redhat-release");
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
if($ARGV[0] eq "MAJOR") {
 | 
						|
    if(!system("test","-f","/etc/SuSE-release")) {
 | 
						|
	print &GetMajor("/etc/SuSE-release");
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
    if(!system("test","-f","/etc/debian_version")) {
 | 
						|
	print &GetMajor("/etc/debian_version");
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
    if(!system("test","-f","/etc/redhat-release")) {
 | 
						|
	print &GetMajor("/etc/redhat-release");
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
if($ARGV[0] eq "MINOR") {
 | 
						|
    if(!system("test","-f","/etc/SuSE-release")) {
 | 
						|
	print &GetMinor("/etc/SuSE-release");
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
    if(!system("test","-f","/etc/debian_version")) {
 | 
						|
	print &GetMinor("/etc/debian_version");
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
    if(!system("test","-f","/etc/redhat-release")) {
 | 
						|
	print &GetMinor("/etc/redhat-release");
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
if($ARGV[0] eq "POINT") {
 | 
						|
    if(!system("test","-f","/etc/SuSE-release")) {
 | 
						|
	print &GetPoint("/etc/SuSE-release");
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
    if(!system("test","-f","/etc/debian_version")) {
 | 
						|
	print &GetPoint("/etc/debian_version");
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
    if(!system("test","-f","/etc/redhat-release")) {
 | 
						|
	print &GetPoint("/etc/redhat-release");
 | 
						|
	exit 0;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
exit 256;
 | 
						|
 | 
						|
 | 
						|
sub GetVersion
 | 
						|
{
 | 
						|
    if(open VERSION,"<",$_[0]) {
 | 
						|
	my $version=<VERSION>;
 | 
						|
	my @f0=split " ",$version;
 | 
						|
	for(my $i=0;$i<@f0;$i++) {
 | 
						|
	    my @f1=split "[.]",$f0[$i];
 | 
						|
	    if(@f1>1) {
 | 
						|
		return $f0[$i];
 | 
						|
	    }
 | 
						|
	}
 | 
						|
    }
 | 
						|
    return "";
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
sub GetMajor
 | 
						|
{
 | 
						|
    my @f0=split "[.]",&GetVersion($_[0]);
 | 
						|
 | 
						|
    return $f0[0];
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
sub GetMinor
 | 
						|
{
 | 
						|
    my @f0=split "[.]",&GetVersion($_[0]);
 | 
						|
 | 
						|
    if(@f0 ge 2) {
 | 
						|
	return $f0[1];
 | 
						|
    }
 | 
						|
    return "";
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
sub GetPoint
 | 
						|
{
 | 
						|
    my @f0=split "[.]",&GetVersion($_[0]);
 | 
						|
 | 
						|
    if(@f0 ge 3) {
 | 
						|
	return $f0[2];
 | 
						|
    }
 | 
						|
    return "";
 | 
						|
}
 |