Diff for /loncom/build/Attic/parse.pl between versions 1.30 and 1.41

version 1.30, 2001/02/27 15:23:35 version 1.41, 2001/05/30 17:42:28
Line 2 Line 2
   
 # Scott Harrison  # Scott Harrison
 # November 2000  # November 2000
   # 12/5/2000,12/7,12/8,12/9,12/10,12/11,12/12,12/13,12/14,12/21 Scott Harrison
 # Read in loncapa tags and metagroup tags  # 1/8/2001,1/10/2001,1/13/2001,1/16/2001,1/18/2001,1/23/2001 Scott Harrison
   # 2/26/2001,2/27/2001,3/5/2001,4/10/2001,4/11,2001,4/13,2001 Scott Harrison
   # 4/17/2001 Scott Harrison
   
   # Read in loncapa tags and metagroup tags.  Output various
   # useful files for viewing, compiling, monitoring, updating,
   # and installing.
   
   # This code works well.  HOWEVER, I was in a rush when I
   # wrote it.  Future plans are that the parsing should be
   # much more event-state based and the input should be
   # more XML-ish. -Scott
   
 # ---------------------------------------------- Read in command line arguments  # ---------------------------------------------- Read in command line arguments
 my ($file,$mode)=@ARGV;  my ($file,$mode)=@ARGV;
Line 171  www:!!:500:500:www:/home/www:/bin/bash Line 182  www:!!:500:500:www:/home/www:/bin/bash
 END  END
 close OUT;  close OUT;
     open OUT,">>setup_file_list.txt";      open OUT,">>setup_file_list.txt";
       print OUT "BinaryRoot/etc/group\n";
       close OUT;
       open OUT,">BinaryRoot/etc/group";
       print OUT<<END;
   root::0:root
   bin::1:root,bin,daemon
   daemon::2:root,bin,daemon
   sys::3:root,bin,adm
   adm::4:root,adm,daemon
   tty::5:
   disk::6:root
   lp::7:daemon,lp
   mem::8:
   kmem::9:
   wheel::10:root
   mail::12:mail
   news::13:news
   uucp::14:uucp
   man::15:
   games::20:
   gopher::30:
   dip::40:
   ftp::50:
   nobody::99:
   users::100:
   www::500:
   END
   close OUT;
       open OUT,">>setup_file_list.txt";
     print OUT "BinaryRoot/etc/hosts.deny\n";      print OUT "BinaryRoot/etc/hosts.deny\n";
     close OUT;      close OUT;
     open OUT,">BinaryRoot/etc/hosts.deny";      open OUT,">BinaryRoot/etc/hosts.deny";
Line 179  ALL: ALL Line 219  ALL: ALL
 END  END
 close OUT;  close OUT;
           
     `install -o 500 -g 500 -m 0700 -d BinaryRoot/home/www`;      `install -o www -g users -m 0700 -d BinaryRoot/home/www`;
     open OUT,">>setup_file_list.txt";      open OUT,">>setup_file_list.txt";
     print OUT "BinaryRoot/home/www\n";      print OUT "BinaryRoot/home/www\n";
     close OUT;      close OUT;
Line 568  sub make_files_build_segment { Line 608  sub make_files_build_segment {
     my $description;      my $description;
     my @allfiles=keys %{$info{'LOCATION'}{$distribution}};      my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
     my $tab="\t";      my $tab="\t";
     my $sources="all: ";      my $sources="# Dynamic Makefile generated by LON-CAPA build process\n\n";
       $sources.="SHELL=\"/bin/sh\"\n\n";
       $sources.="\nall: ";
     foreach my $d (@$dirs) {      foreach my $d (@$dirs) {
  # set other values   # set other values
  my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};   my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};
Line 591  sub make_files_build_segment { Line 633  sub make_files_build_segment {
  if ($build) {   if ($build) {
     my $dependencies=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'DEPENDENCIES'};      my $dependencies=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'DEPENDENCIES'};
     my $source2=$source;      my $source2=$source;
     $source2=~s/^[^\/]+\///;  #    $source2=~s/^[^\/]+\///;
      $source2="../" . $source2;       $source2="../../" . $source2;
     $sources.="$source2 ";      $sources.="$source2 ";
     my $directory=$build;      my $directory=$build;
     $directory=~s/^[^\/]+\///;  #    $directory=~s/^[^\/]+\///;
     $directory=~s/([^\/]+)$//;      $directory=~s/([^\/]+)$//;
      $directory="../" . $directory;       $directory="../../" . $directory;
     my $buildfile=$1;      my $buildfile=$1;
     my $sdir=$source;      my $sdir=$source;
     $sdir=~s/^[^\/]+\///;  #    $sdir=~s/^[^\/]+\///;
     $sdir=~s/([^\/]+)$//;      $sdir=~s/([^\/]+)$//;
      $sdir="../" . $sdir;       $sdir="../../" . $sdir;
     $dependencies=~s/\s+$//;      $dependencies=~s/\s+$//;
     my $depstat="";      my $depstat="";
     if ($dependencies=~s/\s+\[ALWAYS_RUN_BUILD_COMMAND\]//) {      if ($dependencies=~s/\s+\[ALWAYS_RUN_BUILD_COMMAND\]//) {
  $depstat=" alwaysrun";   $depstat=" alwaysrun";
     }      }
     $dependencies=~s/\s+/ $sdir/gs;      $dependencies=~s/\s+/ $sdir/gs;
       my @deps=split(/\s+/,$dependencies);
       shift @deps;
       my $testing=<<END;
    \@if !(echo "");\\
           then echo "**** LON-CAPA WARNING **** Strange shell. Check your path settings.";\\
   END
       foreach my $d (@deps) {
    $testing.=<<END;
    elif !(test -r $d);\\
    then echo "**** LON-CAPA WARNING **** missing the file: $d";\\
   END
       }
       chop $testing;
     $description.=<<END;      $description.=<<END;
 $source2: $dependencies$depstat  $source2: $depstat
 ${tab}cd $directory; sh ./$buildfile  $testing
           else \\
       ${tab}cd $directory; sh ./$buildfile;\\
           fi
   
 END  END
  }   }
Line 674  END Line 732  END
  my $rot=$filesfull[$i];   my $rot=$filesfull[$i];
  $rot=~s/[^\/]+$/\./ if $rot=~/\*/;   $rot=~s/[^\/]+$/\./ if $rot=~/\*/;
  my ($owner,$group)=split(/\:/,$devchown);   my ($owner,$group)=split(/\:/,$devchown);
  if ($category ne 'conf') {   if ($category ne 'conf' && $category ne 'symbolic link') {
     $description.=<<END if $category ne 'symbolic link';      if ($source!~/\*/) {
    $description.=<<END;
   \t\@test -e \$(SOURCE)/$source \&\& install -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot || echo "**** LON-CAPA WARNING **** CVS source file does not exist: \$(SOURCE)/$source"
   END
                       }
       else {
    $description.=<<END;
 \tinstall -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot  \tinstall -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot
 END  END
       }
                 }                  }
     }      }
  }   }
Line 727  END Line 792  END
  my ($owner,$group)=split(/\:/,$devchown);   my ($owner,$group)=split(/\:/,$devchown);
  if ($category eq 'conf') {   if ($category eq 'conf') {
     $description.=<<END;      $description.=<<END;
 \tcp -p \$(TARGET)/$rot \$(TARGET)/$rot`date +'.\%Y\%m\%d\%H\%M\%S'`; install -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot  \tcp -p \$(TARGET)/$rot \$(TARGET)/$rot`date +'.\%Y\%m\%d\%H\%M\%S'` 2>/dev/null; install -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot
 END  END
                 }                  }
     }      }

Removed from v.1.30  
changed lines
  Added in v.1.41


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>