Blame view

tools/sctk-2.4.10/src/align2html/buildInstallVersion.pl 2.33 KB
8dcb6dfcb   Yannick Estève   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
  #!/usr/bin/perl
  
  # ALIGN2HTML
  # Author: Jerome Ajot
  #
  # This software was developed at the National Institute of Standards and Technology by 
  # employees of the Federal Government in the course of their official duties. Pursuant
  # to title 17 Section 105 of the United States Code this software is not subject to
  # copyright protection and is in the public domain. ALIGN2HTML is an experimental system.
  # NIST assumes no responsibility whatsoever for its use by other parties, and makes no
  # guarantees, expressed or implied, about its quality, reliability, or any other
  # characteristic. We would appreciate acknowledgement if the software is used.
  #
  # THIS SOFTWARE IS PROVIDED "AS IS."  With regard to this software, NIST MAKES NO EXPRESS
  # OR IMPLIED WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING MERCHANTABILITY,
  # OR FITNESS FOR A PARTICULAR PURPOSE.
  
  use strict;
  
  my $exe = "align2html-main.pl";
  
  my @modules = ();
  my @file = ();
  
  open EXE,"<$exe" || die "Failed to open executable $exe";
  while (<EXE>){
      if ($_ =~ /my \$Installed = 0;/){
  	push @file, "my \$Installed = 1;
  ";
      } elsif ($_ =~ /\#\#\# Begin Local Modules/){
  	do {
  	    if ($_ =~ /use\s+(\S+)\s*;/){
  		push @modules, $1;
  	    }
  	    $_ = <EXE>;
  	} while ($_ !~ /\#\#\# End Local Modules/);
  	my $modExp = "use\\s+(".join("|",@modules).")";
  	#print "Modes = ".join(" ",@modules)." $modExp
  ";
  	### Insert the modules 
  	foreach my $mod(@modules){
  	    open (MOD, "<$mod.pm") || die "Failed to open $mod.pm";
  	    while (<MOD>){
  		push(@file, $_) if ($_ !~ /$modExp/);
  	    }
  	    close MOD;
  	}
  	### Reset the package
  	push @file, "package main;
  "
      } elsif ($_ =~ /die "HERE DOCUMENT NOT BUILT"/){
          push @file, 'my $here = "";'."
  ";
          push @file, "\$here = << 'EOTAR';
  ";
  	open TARPACK, "packImageTarFile" || die "Failed to open the packed Image tar file";
  	while (<TARPACK>){
  	    push @file, $_;
  	}
  	close TARPACK;
  	push @file, pack("u", $_);
          push @file, "EOTAR
  ";
  
  	push @file, 'open UNTAR, "| (cd $outDir ; tar zxf -)" || die "Failed to UUDECODE/TAR"'.";
  ";
  	push @file, 'binmode(UNTAR);'."
  ";
  	push @file, 'print UNTAR unpack("u",$here);'."
  ";
  	push @file, 'close UNTAR'."
  ";
      } else {
  	push @file, $_;
      }
  }
  print @file;
  
  #	cat align2html.pl | perl -ne 'if ($$_ =~ /die "HERE DOCUMENT NOT BUILT"/) { system "cat DATA.tgz.uu" } else { print }' > align2html-combined.pl