File:  [LON-CAPA] / capa / capa51 / CapaTools / rebuild.pl
Revision 1.4: download - view: text, annotated - select for diffs
Mon Aug 7 20:47:29 2000 UTC (23 years, 10 months ago) by albertel
Branches: MAIN
CVS tags: version_2_9_X, version_2_9_99_0, version_2_9_1, version_2_9_0, version_2_8_X, version_2_8_99_1, version_2_8_99_0, version_2_8_2, version_2_8_1, version_2_8_0, version_2_7_X, version_2_7_99_1, version_2_7_99_0, version_2_7_1, version_2_7_0, version_2_6_X, version_2_6_99_1, version_2_6_99_0, version_2_6_3, version_2_6_2, version_2_6_1, version_2_6_0, version_2_5_X, version_2_5_99_1, version_2_5_99_0, version_2_5_2, version_2_5_1, version_2_5_0, version_2_4_X, version_2_4_99_0, version_2_4_2, version_2_4_1, version_2_4_0, version_2_3_X, version_2_3_99_0, version_2_3_2, version_2_3_1, version_2_3_0, version_2_2_X, version_2_2_99_1, version_2_2_99_0, version_2_2_2, version_2_2_1, version_2_2_0, version_2_1_X, version_2_1_99_3, version_2_1_99_2, version_2_1_99_1, version_2_1_99_0, version_2_1_3, version_2_1_2, version_2_1_1, version_2_1_0, version_2_12_X, version_2_11_X, version_2_11_4_uiuc, version_2_11_4_msu, version_2_11_4, version_2_11_3_uiuc, version_2_11_3_msu, version_2_11_3, version_2_11_2_uiuc, version_2_11_2_msu, version_2_11_2_educog, version_2_11_2, version_2_11_1, version_2_11_0_RC3, version_2_11_0_RC2, version_2_11_0_RC1, version_2_11_0, version_2_10_X, version_2_10_1, version_2_10_0_RC2, version_2_10_0_RC1, version_2_10_0, version_2_0_X, version_2_0_99_1, version_2_0_2, version_2_0_1, version_2_0_0, version_1_99_3, version_1_99_2, version_1_99_1_tmcc, version_1_99_1, version_1_99_0_tmcc, version_1_99_0, version_1_3_X, version_1_3_3, version_1_3_2, version_1_3_1, version_1_3_0, version_1_2_X, version_1_2_99_1, version_1_2_99_0, version_1_2_1, version_1_2_0, version_1_1_X, version_1_1_99_5, version_1_1_99_4, version_1_1_99_3, version_1_1_99_2, version_1_1_99_1, version_1_1_99_0, version_1_1_3, version_1_1_2, version_1_1_1, version_1_1_0, version_1_0_99_3, version_1_0_99_2, version_1_0_99_1, version_1_0_99, version_1_0_3, version_1_0_2, version_1_0_1, version_1_0_0, version_0_99_5, version_0_99_4, version_0_99_3, version_0_99_2, version_0_99_1, version_0_99_0, version_0_6_2, version_0_6, version_0_5_1, version_0_5, version_0_4, stable_2002_spring, stable_2002_july, stable_2002_april, stable_2001_fall, release_5-1-3, loncapaMITrelate_1, language_hyphenation_merge, language_hyphenation, conference_2003, bz6209-base, bz6209, STABLE, HEAD, GCI_3, GCI_2, GCI_1, CAPA_5-1-6, CAPA_5-1-5, CAPA_5-1-4_RC1, BZ4492-merge, BZ4492-feature_horizontal_radioresponse, BZ4492-feature_Support_horizontal_radioresponse, BZ4492-Support_horizontal_radioresponse
- fixed license notices the reference the GNU GPL rather than the GNU LGPL

    1: #!/usr/local/bin/perl
    2: 
    3: # rebuild a db file from the infomation in the records dir
    4: #  Copyright (C) 1992-2000 Michigan State University
    5: #
    6: #  The CAPA system is free software; you can redistribute it and/or
    7: #  modify it under the terms of the GNU General Public License as
    8: #  published by the Free Software Foundation; either version 2 of the
    9: #  License, or (at your option) any later version.
   10: #
   11: #  The CAPA system is distributed in the hope that it will be useful,
   12: #  but WITHOUT ANY WARRANTY; without even the implied warranty of
   13: #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   14: #  General Public License for more details.
   15: #
   16: #  You should have received a copy of the GNU General Public
   17: #  License along with the CAPA system; see the file COPYING.  If not,
   18: #  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   19: #  Boston, MA 02111-1307, USA.
   20: #
   21: #  As a special exception, you have permission to link this program
   22: #  with the TtH/TtM library and distribute executables, as long as you
   23: #  follow the requirements of the GNU GPL in regard to all of the
   24: #  software in the executable aside from TtH/TtM.
   25: 
   26:  require('getopts.pl');
   27:  
   28:  
   29:  
   30:  sub  S_Enterpath {
   31:     local($set)=@_;
   32:     local($notdone,$path);
   33:     
   34:     $notdone = 1;
   35:     while ($notdone) {
   36:       print "Please enter the CLASS absolute path:\n";
   37:       $path = <>; chomp($path);
   38:       if( $path =~ /\/$/ ) {
   39:         $Rfullpath = "$path" . "records";
   40:         $Lfullpath = "$path" . "records/log$set.db";
   41:         $Wfullpath = "$path" . "records/weblog$set.db";
   42:       } else {
   43:         $Rfullpath = "$path" . "/records";
   44:         $Lfullpath = "$path" . "/records/log$set.db";
   45:         $Wfullpath = "$path" . "/records/weblog$set.db";
   46:       }
   47:       if( -d $path ) {
   48:         if( -d $Rfullpath ) {
   49:           if( -f $Lfullpath ) {
   50:             $notdone = 0;
   51:           } else {
   52:             print "File [$Lfullpath] does not exist!\n";
   53:           }
   54:           if( -f $Wfullpath ) {
   55:             $notdone = 0;
   56:           } else {
   57:             print "File [$Wfullpath] does not exist!\n";
   58:           }
   59:         } else {
   60:           print "Directory [$Rfullpath] does not exist!\n";
   61:         }
   62:       } else {
   63:         print "Directory [$path] does not exist!\n";
   64:       }
   65:     
   66:     }
   67:     return ($path);
   68:   }
   69:   
   70:   sub S_ScanDB  {
   71:     local($filename)=@_;
   72:     local($line_cnt)=0;
   73:     local($s_num,$dow,$mon,$sp,$day,$time,$yr,$ans_str);
   74:     local($rest);
   75:     local(@ans_char);
   76:     local($ii,$first,$cmd);
   77:     local($usr_ans,$usr_try,$prob_cnt);
   78:     
   79:     open(IN, "<$filename") || die "Cannot open $filename file!";
   80:     $Yes_cnt = 0; $No_cnt = 0;
   81:     while (<IN>) {
   82:       $line_cnt++;
   83:       chomp();
   84:       ($first,$ans_str) = split(/ [1-9][0-9][0-9][0-9] /);
   85:        # print "$ans_str\n";
   86:       ($s_num,$rest) = split(/ /,$first);
   87:       (@ans_char) = split(/ */,$ans_str);
   88:        $s_num = uc($s_num);
   89:        $usr_ans = "$s_num" . "ans";
   90:        $usr_try = "$s_num" . "try";
   91:        if( $prob_cnt == 0 ) {
   92:          $prob_cnt = $#ans_char +1;
   93:        }
   94:        if(! defined @$usr_ans  ) {
   95:          for($ii=0;$ii<=$#ans_char;$ii++) {
   96:            $$usr_ans[$ii] = '-';
   97:          }
   98:        }
   99:        if(! defined @$usr_try  ) {
  100:          for($ii=0;$ii<=$#ans_char;$ii++) {
  101:            $$usr_try[$ii] = 0;
  102:          }
  103:        }
  104:        for($ii=0;$ii<=$#ans_char;$ii++) {
  105:          if( $ans_char[$ii] eq 'Y') {
  106:            $$usr_ans[$ii] = 'Y';
  107:            $$usr_try[$ii]++;
  108:          }
  109:          if( $ans_char[$ii] eq 'N') {
  110:            if( $$usr_ans[$ii] ne 'Y') {
  111:              $$usr_ans[$ii] = 'N';
  112:            }
  113:            $$usr_try[$ii]++;
  114:          }
  115:        }
  116:        if(! defined $Exist{"$s_num"} ) {
  117:          $Exist{"$s_num"} = $s_num;
  118:        }
  119:      }
  120:      close(IN) || die "Cannot close $filename file!";
  121:      return ($prob_cnt);
  122:   }
  123:   
  124:   
  125:   
  126:   if(! &Getopts('s:') ) {
  127:      print STDERR "$Usage\n";
  128:      exit 2;
  129:   }
  130:   $opt_s = 1  if ! $opt_s;
  131:   S_Enterpath($opt_s);
  132:   
  133:   $cnt = S_ScanDB("$Lfullpath");
  134:   $cnt = S_ScanDB("$Wfullpath");
  135:   
  136:   foreach $sn (sort keys %Exist) {
  137:     $usr_ans = "$sn" . "ans";
  138:     $usr_try = "$sn" . "try";
  139:     print "$sn ";
  140:     for($ii = 0; $ii< $cnt;$ii++) {
  141:       print $$usr_ans[$ii];
  142:     }
  143:     for($ii = 0; $ii< $cnt;$ii++) {
  144:       printf ",%2d", $$usr_try[$ii];
  145:     }
  146:     print "\n";
  147:   }
  148:   
  149:   
  150:   
  151:   
  152:   
  153:   
  154:   

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