Diff for /loncom/build/Attic/parse.pl between versions 1.15 and 1.21

version 1.15, 2000/12/13 21:43:18 version 1.21, 2001/01/08 17:57:06
Line 146  elsif ($mode eq "BinaryRoot") { Line 146  elsif ($mode eq "BinaryRoot") {
     $a=&make_file_list(\@directories);      $a=&make_file_list(\@directories);
     print OUT $a;      print OUT $a;
     close OUT;      close OUT;
           open OUT,">setup_file_list.txt";
       print OUT "BinaryRoot/etc/passwd\n";
       close OUT;
       open OUT,">BinaryRoot/etc/passwd";
       print OUT<<END;
   root:x:0:0:root:/root:/bin/bash
   bin:x:1:1:bin:/bin:
   daemon:x:2:2:daemon:/sbin:
   adm:x:3:4:adm:/var/adm:
   lp:x:4:7:lp:/var/spool/lpd:
   sync:x:5:0:sync:/sbin:/bin/sync
   shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
   halt:x:7:0:halt:/sbin:/sbin/halt
   mail:x:8:12:mail:/var/spool/mail:
   news:x:9:13:news:/var/spool/news:
   uucp:x:10:14:uucp:/var/spool/uucp:
   operator:x:11:0:operator:/root:
   games:x:12:100:games:/usr/games:
   gopher:x:13:30:gopher:/usr/lib/gopher-data:
   ftp:x:14:50:FTP User:/home/ftp:
   nobody:x:99:99:Nobody:/:
   xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false
   gdm:x:42:42::/home/gdm:/bin/bash
   www:x:500:500:www:/home/www:/bin/bash
   END
   close OUT;
   
 }  }
 elsif ($mode eq "status") {  elsif ($mode eq "status") {
 }  }
 elsif ($mode eq "update") {  elsif ($mode eq "update") {
 }  }
   elsif ($mode eq "configinstall") {
       @directories=&determine_directory_structure;
       $a=&make_files_configinstall_segment(\@directories);
       print $a;
       $a=&make_files_configpermissions_segment(\@directories);
       print $a;
   }
 elsif ($mode eq "install") {  elsif ($mode eq "install") {
     @directories=&determine_directory_structure;      @directories=&determine_directory_structure;
     $a=&make_directory_install_segment(\@directories);      $a=&make_directory_install_segment(\@directories);
Line 174  sub make_file_list { Line 207  sub make_file_list {
     my @allfiles=keys %{$info{'LOCATION'}{$distribution}};      my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
     foreach my $d (@$dirs) {      foreach my $d (@$dirs) {
  # set other values   # set other values
    $description.=<<END;
   BinaryRoot/$d
   END
  my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};   my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};
  $dirdescription="(" . $dirdescription . ")" if $dirdescription;   $dirdescription="(" . $dirdescription . ")" if $dirdescription;
  # find files that are contained in this directory   # find files that are contained in this directory
Line 241  END Line 277  END
  my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};   my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
  my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};   my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
  my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};   my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    my ($owner,$group)=split(/\:/,$devchown);
  my $own=$devchown; $own=~s/\:/\,/;   my $own=$devchown; $own=~s/\:/\,/;
  $description.=<<END;   $description.=<<END;
 \tinstall -m $devchmod -d \$(TARGET)/$d  \tinstall -o $owner -g $group -m $devchmod -d \$(TARGET)/$d
 END  END
     }      }
     $description.=<<END;      $description.=<<END;
Line 288  END Line 325  END
  my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'};   my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'};
  my $rot=$filesfull[$i];   my $rot=$filesfull[$i];
  $rot=~s/[^\/]+$/\./ if $rot=~/\*/;   $rot=~s/[^\/]+$/\./ if $rot=~/\*/;
    my ($owner,$group)=split(/\:/,$devchown);
  $description.=<<END if $category ne 'symbolic link';   $description.=<<END if $category ne 'symbolic link';
 \tinstall -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot  \tinstall -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot
 END  END
     }      }
  }   }
Line 459  END Line 497  END
  my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};   my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
  my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};   my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
  my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};   my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    my ($owner,$group)=split(/\:/,$devchown);
  my $own=$devchown; $own=~s/\:/\,/;   my $own=$devchown; $own=~s/\:/\,/;
  $description.=<<END;   $description.=<<END;
 \tinstall -m $devchmod -d \$(TARGET)/$d  \tinstall -o $owner -g $group -m $devchmod -d \$(TARGET)/$d
 END  END
     }      }
     $description.=<<END;      $description.=<<END;
Line 532  END Line 571  END
  my $rot=$filesfull[$i];   my $rot=$filesfull[$i];
  $rot=~s/[^\/]+$/\./ if $rot=~/\*/;   $rot=~s/[^\/]+$/\./ if $rot=~/\*/;
 # $description.=<<END if $category ne 'symbolic link';  # $description.=<<END if $category ne 'symbolic link';
 #\tinstall -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot  #\tinstall -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot
 #END  #END
     }      }
  }   }
Line 581  END Line 620  END
  my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};   my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
  my $rot=$filesfull[$i];   my $rot=$filesfull[$i];
  $rot=~s/[^\/]+$/\./ if $rot=~/\*/;   $rot=~s/[^\/]+$/\./ if $rot=~/\*/;
    my ($owner,$group)=split(/\:/,$devchown);
  if ($category ne 'conf') {   if ($category ne 'conf') {
     $description.=<<END if $category ne 'symbolic link';      $description.=<<END if $category ne 'symbolic link';
 \tinstall -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot  \tinstall -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot
   END
                   }
       }
    }
       }
       $description.=<<END;
   
   END
       return $description;
   }
   
   # ------ Installation commands to install configuration files (and make backups)
   sub make_files_configinstall_segment {
       my ($dirs)=@_;
       my $description=<<END;
   configfiles:
   END
       my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
       foreach my $d (@$dirs) {
    # set other values
    my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};
    $dirdescription="(" . $dirdescription . ")" if $dirdescription;
    # find files that are contained in this directory
    my @files;
    my @filesfull;
    foreach my $f (@allfiles) {
       if ($f=~/^$d\/([^\/]+)$/) {
    push @files,$1;
    push @filesfull,$f;
       }
    }
    # render starting HTML formatting elements
    if (@files) {
       $description.=<<END;
   \t# $d $dirdescription
   END
           }
    if (@files) {
               foreach my $i (0..$#files) {
    my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'};
    my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'};
    my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'};
    my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
    my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
    my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    my $rot=$filesfull[$i];
    $rot=~s/[^\/]+$/\./ if $rot=~/\*/;
    my ($owner,$group)=split(/\:/,$devchown);
    if ($category eq 'conf') {
       $description.=<<END;
   \tinstall -b -S `date +'.\%Y\%m\%d\%H\%M\%S'` -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot
   END
                   }
       }
    }
       }
       $description.=<<END;
   
   END
       return $description;
   }
   
   # ------ Commands to enforce configuration file permissions
   sub make_files_configpermissions_segment {
       my ($dirs)=@_;
       my $description=<<END;
   configpermissions:
   END
       my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
       foreach my $d (@$dirs) {
    # set other values
    my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};
    $dirdescription="(" . $dirdescription . ")" if $dirdescription;
    # find files that are contained in this directory
    my @files;
    my @filesfull;
    foreach my $f (@allfiles) {
       if ($f=~/^$d\/([^\/]+)$/) {
    push @files,$1;
    push @filesfull,$f;
       }
    }
    # render starting HTML formatting elements
    if (@files) {
       $description.=<<END;
   \t# $d $dirdescription
   END
           }
    if (@files) {
               foreach my $i (0..$#files) {
    my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'};
    my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'};
    my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'};
    my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
    my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
    my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    my $rot=$filesfull[$i];
    $rot=~s/[^\/]+$/\./ if $rot=~/\*/;
    my ($owner,$group)=split(/\:/,$devchown);
    if ($category eq 'conf') {
       $description.=<<END;
   \tchmod $devchmod \$(TARGET)/$rot
   \tchown $devchown \$(TARGET)/$rot
 END  END
                 }                  }
     }      }
Line 601  sub make_links_install_segment { Line 744  sub make_links_install_segment {
     my $description=<<END;      my $description=<<END;
 links:  links:
 END  END
       chop $description;
       my $description2;
     my @allfiles=keys %{$info{'LOCATION'}{$distribution}};      my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
     foreach my $d (@$dirs) {      foreach my $d (@$dirs) {
  # find files that are contained in this directory   # find files that are contained in this directory
Line 621  END Line 766  END
  my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};   my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
  my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};   my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
  my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};   my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
  $description.=<<END if $category eq 'symbolic link';   if ($category eq 'symbolic link') {
       $description.=" \$(TARGET)/$filesfull[$i]";
       $description2.=<<END;
   \$(TARGET)/$filesfull[$i]:
 \tln -s /$linkto \$(TARGET)/$filesfull[$i]  \tln -s /$linkto \$(TARGET)/$filesfull[$i]
   
 END  END
                   }
     }      }
  }   }
     }      }
     $description.=<<END;      $description.=<<END;
   
 END  END
       $description.=$description2;
     return $description;      return $description;
 }  }
   

Removed from v.1.15  
changed lines
  Added in v.1.21


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