Revision: | 1.1 |
Committed: | Fri Dec 17 10:23:15 1999 UTC (25 years, 4 months ago) by williamc |
Content type: | text/plain |
Branch: | MAIN |
CVS Tags: | V0_19_7, V0_19_6, V0_19_6p1, V0_19_5, SFATEST, V0_19_4, V0_19_4_pre3, V0_19_4_pre2, V0_19_4_pre1, V0_19_3, V0_19_2, V0_19_1, V0_19_0, V0_18_5, V0_18_4, V_18_3_TEST, VO_18_3, V0_18_2, V0_18_1, ProtoEnd |
Branch point for: | SCRAM_V1_BRANCH, V0_19_4_B |
Log Message: | *** empty log message *** |
# | User | Rev | Content |
---|---|---|---|
1 | williamc | 1.1 | # |
2 | # Provide machine/architecture information services | ||
3 | # simply set the architecture variable based on uname | ||
4 | # | ||
5 | # --------- | ||
6 | # Interface | ||
7 | # --------- | ||
8 | # new() : new object - will autoinitialise to architecture | ||
9 | # getarch() : return the current (assumed) architecture | ||
10 | # archfile($filename,$base) : Will check various relevant architecture specific | ||
11 | # dirs in search for an architecture specific $file | ||
12 | # starting from base | ||
13 | |||
14 | package Architecture; | ||
15 | require 5.001; | ||
16 | |||
17 | sub new { | ||
18 | my $class=shift; | ||
19 | $self={}; | ||
20 | bless $self, $class; | ||
21 | $self->_initarch(); | ||
22 | return $self; | ||
23 | } | ||
24 | |||
25 | sub getarch { | ||
26 | my $self=shift; | ||
27 | return $self->{arch}; | ||
28 | } | ||
29 | |||
30 | sub archfile { | ||
31 | my $self=shift; | ||
32 | my $filename=shift; | ||
33 | my $base=shift; | ||
34 | |||
35 | my $archdir; | ||
36 | |||
37 | foreach $dir ( @{$self->{archdirs}} ) { | ||
38 | $archdir=$base."/".$dir."/".$filename; | ||
39 | if ( -f $archdir ) { | ||
40 | return $self->{archdir}; | ||
41 | } | ||
42 | } | ||
43 | } | ||
44 | |||
45 | # ------------ Support Routines --------------------------------- | ||
46 | |||
47 | sub _initarch { | ||
48 | my $self=shift; | ||
49 | |||
50 | $self->{realarch}=$; | ||
51 | # Seperate Variables means we can pretend to be other architectures | ||
52 | $self->{arch}=$self->{realarch}; | ||
53 | |||
54 | # get the hostname | ||
55 | use Sys::Hostname; | ||
56 | $self->{host}=hostname(); | ||
57 | |||
58 | # Architecture directory search path | ||
59 | @{$self->{archdirs}}=( $self->{arch}."/".$self->{host}, "$self->{arch}" ); | ||
60 | } |