[Bio] / FigKernelScripts / build_sas_distro_from_cvs.pl Repository:
ViewVC logotype

Annotation of /FigKernelScripts/build_sas_distro_from_cvs.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (view) (download) (as text)

1 : olson 1.1 #
2 :     # Check out a clean copy of the code in CVS, then run build_sas_distro against it to generate
3 :     # clean distribution.
4 :     #
5 :    
6 :     use strict;
7 :     use FIG;
8 :     use FIG_Config;
9 :     use Cwd;
10 :    
11 : olson 1.2 use Getopt::Long;
12 :    
13 : olson 1.5 my $version;
14 : olson 1.2 my $build_dtr;
15 :    
16 : olson 1.5 my $rc = GetOptions(dtr => \$build_dtr,
17 :     'version=s' => \$version,
18 :     );
19 :    
20 :     $rc && @ARGV == 1 or die "usage: $0 [--version version-string] [--dtr] output-tarfile\n";
21 : olson 1.1
22 :     my $output_tarfile = shift;
23 :    
24 :     my $modules = "/home/olson/Build/perl-packages";
25 :     my $temp = "$FIG_Config::temp/sas_build.$$";
26 :     my $distro_dir = "$temp/sas";
27 :    
28 :     &FIG::verify_dir($temp);
29 :     &FIG::verify_dir($distro_dir);
30 :    
31 :     my $here = getcwd();
32 :    
33 :     chdir($temp);
34 :    
35 : olson 1.4 my @cvs_modules = qw(FigKernelScripts FigKernelPackages ModelSEED ModelSEEDScripts);
36 : olson 1.5 my $tarfile_dir;
37 : olson 1.2 my $cmd;
38 :     if ($build_dtr)
39 :     {
40 :     push(@cvs_modules, 'DesktopRast');
41 :     $cmd = "build_dtr_distro";
42 : olson 1.5 $tarfile_dir = "myrast-$version";
43 :     my $new = "$distro_dir/$tarfile_dir";
44 :     &FIG::verify_dir($new);
45 :     $distro_dir = $new;
46 : olson 1.2 }
47 :     else
48 :     {
49 :     push(@cvs_modules, 'FigWebServices');
50 :     $cmd = "build_sas_distro";
51 :     }
52 :    
53 : olson 1.1 my $rc = system('cvs -d :pserver:anonymous@biocvs.mcs.anl.gov:/disks/cvs/bio export -D now ' .
54 : olson 1.2 join(" ", @cvs_modules) . " > cvs_checkout.stdout");
55 : olson 1.1 if ($rc != 0)
56 :     {
57 :     die "cvs failed with rc=$rc\n";
58 :     }
59 :    
60 :     chdir($here);
61 :    
62 : olson 1.5 if (defined($version))
63 :     {
64 :     my $vfile = "$temp/FigKernelPackages/myRASTVersion.pm";
65 :     if (open(VF, ">", $vfile))
66 :     {
67 :     print VF <<END;
68 :     # This is a SAS component.
69 :     package myRASTVersion;
70 :     use base 'Class::Accessor';
71 :     __PACKAGE__->mk_accessors(qw(release));
72 :     sub new
73 :     {
74 :     my(\$class) = \@_;
75 :     my \$self = {
76 :     release => \"$version\",
77 :     };
78 :     return bless \$self, \$class;
79 :     }
80 :     1;
81 :     END
82 :     }
83 :     else
84 :     {
85 :     warn "Cannot open $vfile: $!";
86 :     }
87 :    
88 :     #
89 :     # Also look for ClientThing and update AGENT_NAME.
90 :     #
91 :     my $ct = "$temp/FigKernelPackages/ClientThing.pm";
92 :     if (open(my $ctfh, "<", $ct))
93 :     {
94 :     local $/;
95 :     undef $/;
96 :     my $txt = <$ctfh>;
97 :     close($ctfh);
98 :     my $new_name;
99 :     if ($build_dtr)
100 :     {
101 :     $new_name = "myRAST version $version";
102 :     }
103 :     else
104 :     {
105 :     $new_name = "SAS version $version";
106 :     }
107 :     $txt =~ s/AGENT_NAME\s+=>\s+"[^"]*"/AGENT_NAME => "$new_name"/;
108 :     open($ctfh, ">", $ct);
109 :     print $ctfh $txt;
110 :     close($ctfh);
111 :     }
112 :     }
113 :    
114 : olson 1.2 $rc = system("$FIG_Config::bin/$cmd", "--source", $temp, $distro_dir, $modules);
115 : olson 1.1
116 :     if ($rc != 0)
117 :     {
118 :     die "build_sas_distro failed with rc=$rc\n";
119 :     }
120 :    
121 : olson 1.5 if ($tarfile_dir)
122 :     {
123 :     $rc = system("tar", "-c", "-C", "$distro_dir/..", "-z", "-f", $output_tarfile, $tarfile_dir);
124 :     }
125 :     else
126 :     {
127 :     $rc = system("tar", "-c", "-C", $distro_dir, "-z", "-f", $output_tarfile, ".");
128 :     }
129 : olson 1.1 if ($rc != 0)
130 :     {
131 :     die "tar failed with rc=$rc\n";
132 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3