ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/clientfile.pm
(Generate patch)

Comparing COMP/SCRAM/src/clientfile.pm (file contents):
Revision 1.6 by williamc, Fri Mar 19 14:33:58 1999 UTC vs.
Revision 1.8 by williamc, Wed Mar 24 16:01:34 1999 UTC

# Line 14 | Line 14 | push @ARCHBLOCK, $Arch;
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 {
# Line 176 | Line 194 | sub Arch_End {
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 {
# Line 186 | Line 205 | 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 {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines