14 |
|
|
15 |
|
sub BuildClientFile { |
16 |
|
my $projectfile=shift; |
17 |
+ |
use ToolBox; |
18 |
+ |
|
19 |
+ |
openclientfile('new') and return; |
20 |
+ |
$toolbox=ToolBox->new(); |
21 |
+ |
print CLIENT "# Machine Generated File - do not edit\n"; |
22 |
+ |
_ParseProjectReqs($projectfile); |
23 |
+ |
&closeclientfile; |
24 |
+ |
} |
25 |
+ |
|
26 |
+ |
sub closeclienfile { |
27 |
+ |
close INSTALLLOG; |
28 |
+ |
close CLIENT; |
29 |
+ |
close CLIENT2; |
30 |
+ |
} |
31 |
+ |
|
32 |
+ |
sub openclientfile { |
33 |
+ |
my $action=shift; |
34 |
|
my $archdir=".SCRAM/$ENV{SCRAM_ARCH}"; |
35 |
|
my $clientfile="$archdir/clientsettings"; |
36 |
|
use Utilities::AddDir; |
20 |
– |
use ToolBox; |
37 |
|
|
38 |
|
AddDir::adddir($archdir); |
39 |
< |
initialiseclient($clientfile) or return; # get out if it already exists |
40 |
< |
$toolbox=ToolBox->new(); |
41 |
< |
open ( CLIENT, ">$ENV{LOCALTOP}/$clientfile" ) || |
39 |
> |
if ( $action=~/add/i ) { |
40 |
> |
$actionop='>>'; |
41 |
> |
initialiseclient($clientfile); |
42 |
> |
} |
43 |
> |
else { #default is new |
44 |
> |
$actionop='>'; |
45 |
> |
initialiseclient($clientfile) or return 1; # get out if it already exists |
46 |
> |
} |
47 |
> |
open ( CLIENT, "$actionop$ENV{LOCALTOP}/$clientfile" ) || |
48 |
|
die "clientfile: Cannot open clientsettings file " |
49 |
|
."$clientfile $!\n"; |
50 |
< |
open ( CLIENT2, ">$ENV{LOCALTOP}/".$clientfile."_reqs" ) || |
50 |
> |
open ( CLIENT2, "$actionop$ENV{LOCALTOP}/".$clientfile."_reqs" ) || |
51 |
|
die "clientfile: Cannot open clientsettings file " |
52 |
|
."$clientfile $!\n"; |
53 |
< |
open (INSTALLLOG, ">$archdir/installation_log") |
53 |
> |
open (INSTALLLOG, "$actionop$archdir/installation_log") |
54 |
|
|| die "clientfile: Cannot open log file $!\n"; |
55 |
< |
print CLIENT "# Machine Generated File - do not edit\n"; |
34 |
< |
_ParseProjectReqs($projectfile); |
35 |
< |
close INSTALLLOG; |
36 |
< |
close CLIENT; |
37 |
< |
close CLIENT2; |
55 |
> |
return 0; |
56 |
|
} |
57 |
|
|
58 |
|
sub _ParseProjectReqs { |
194 |
|
my $name=shift; |
195 |
|
my @vars=@_; |
196 |
|
|
197 |
< |
$Arch=pop @ARCHBLOCK; |
197 |
> |
pop @ARCHBLOCK; |
198 |
> |
$Arch=$ARCHBLOCK[$#ARCHBLOCK]; |
199 |
|
} |
200 |
|
|
201 |
|
sub lib_start { |
205 |
|
|
206 |
|
$hashref=$toolswitch->SetupValueHash( \@vars ); |
207 |
|
$toolswitch->checkparam($hashref, $name, 'name'); |
208 |
< |
push @{$Envtype{lib}}, $$hashref{'name'}; |
209 |
< |
outclient($name,$$hashref{'name'},"D"); |
208 |
> |
if ( $Arch ) { |
209 |
> |
push @{$Envtype{lib}}, $$hashref{'name'}; |
210 |
> |
outclient($name,$$hashref{'name'},"D"); |
211 |
> |
} |
212 |
|
} |
213 |
|
|
214 |
|
sub Env_start { |