source: ProjectBuilder/devel/pb/lib/distro.pm@ 11

Last change on this file since 11 was 11, checked in by Bruno Cornec, 17 years ago

Addition of distro management

  • Property svn:executable set to *
File size: 1.6 KB
Line 
1#!/usr/bin/perl -w
2#
3# Creates common environment for distributions
4#
5# $Id$
6#
7
8require Exporter;
9@ISA = qw(Exporter);
10@EXPORT = qw(distro_init distro_get);
11
12use strict;
13
14sub distro_init {
15
16my $ddir = shift;
17my $dver = shift;
18my $dfam = "unknown";
19my $dtype = "unknown";
20my $dsuf = "unknown";
21
22# If we don't know which distribution we're on, then guess it
23($ddir, $dver) = distro_get() if ((not defined $ddir) || (not defined $dver));
24
25if (($ddir =~ /debian/) ||
26 ($ddir =~ /ubuntu/)) {
27 $dfam="debian";
28 $dtype="deb";
29 $dsuf=".$ddir$dver";
30} elsif ($ddir =~ /gentoo/) {
31 $dfam="gentoo";
32 $dtype="ebuild";
33 my $dver1 = $dver;
34 $dver1 =~ s/\.//;
35 $dsuf=".$ddir$dver1";
36} elsif ($ddir =~ /slackware/) {
37 $dfam="slackware";
38 $dtype="tgz";
39 $dsuf=".$dfam$dver";
40} elsif (($ddir =~ /suse/) ||
41 ($ddir =~ /sles/)) {
42 $dfam="suse";
43 $dtype="rpm";
44 $dsuf=".$ddir$dver";
45} elsif (($ddir =~ /redhat/) ||
46 ($ddir =~ /rhel/) ||
47 ($ddir =~ /fedora/) ||
48 ($ddir =~ /centos/)) {
49 $dfam="redhat";
50 $dtype="rpm";
51 my $dver1 = $dver;
52 $dver1 =~ s/\.//;
53 if ($ddir =~ /fedora/) {
54 $dsuf=".fc$dver1";
55 } elsif ($ddir =~ /redhat/) {
56 $dsuf=".rh$dver1";
57 } else {
58 $dsuf=".$ddir$dver1";
59 }
60} elsif (($ddir =~ /mandrake/) ||
61 ($ddir =~ /mandriva/)) {
62 $dfam="mandriva";
63 $dtype="rpm";
64 if ($ddir =~ /mandrake/) {
65 my $dver1 = $dver;
66 $dver1 =~ s/\.//;
67 $dsuf=".mdk$dver1";
68 } else {
69 $dsuf=".mdv$dver";
70 }
71} elsif ($ddir =~ /freebsd/) {
72 $dfam="freebsd";
73 $dtype="port";
74 my $dver1 = $dver;
75 $dver1 =~ s/\.//;
76 $dsuf=".$dfam$dver1";
77} else {
78 $dfam="unknown";
79 $dtype="unknown";
80 $dsuf="unknown";
81}
82
83return($ddir, $dver, $dfam, $dtype, $dsuf);
84}
85
86sub distro_get {
87}
881;
Note: See TracBrowser for help on using the repository browser.