/[Sack]/trunk/bin/sack.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/bin/sack.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4 by dpavlin, Sun Sep 20 20:08:11 2009 UTC revision 5 by dpavlin, Mon Sep 21 15:36:47 2009 UTC
# Line 18  GetOptions( Line 18  GetOptions(
18          'path=s'   => \$path,          'path=s'   => \$path,
19          'offset=i' => \$offset,          'offset=i' => \$offset,
20          'limit=i'  => \$limit,          'limit=i'  => \$limit,
21  );  ) or die $!;
22    
23  my $t = time;  my $t = time;
24    
# Line 42  report $input->size . ' records loaded'; Line 42  report $input->size . ' records loaded';
42    
43  mkdir 'out' unless -e 'out';  mkdir 'out' unless -e 'out';
44    
45    our $out;
46    
47  sub run_views {  sub run_views {
48          my @views = glob 'views/*.pl';          my @views = glob 'views/*.pl';
49          warn "# views ", dump @views;          warn "# views ", dump @views;
# Line 51  sub run_views { Line 53  sub run_views {
53                  my ( $nr, $package ) = ( $1, $2 )                  my ( $nr, $package ) = ( $1, $2 )
54                          if $view =~ m{/(\d+)\.([^/]+(\.pl)?$)};                          if $view =~ m{/(\d+)\.([^/]+(\.pl)?$)};
55    
56                  my $out;                  undef $out;
57    
58                  next if system("perl -c $view") != 0;                  next if system("perl -c $view") != 0;
59    
60                  my $code = read_file $view;                  my $code = read_file $view;
61                  warn $code;                  warn "## CODE\n$code\n## CODE\n";
62    
63                    my $affected = 0;
64                  $t = time;                  $t = time;
65    
66                  foreach my $pos ( 1 .. $input->size ) {                  foreach my $pos ( $offset + 1 .. $input->size ) {
67                          my $rec = $input->fetch_rec($pos);                                my $rec = $input->fetch_rec($pos);
68                            if ( ! $rec ) {
69                          eval $code;                                  warn "END at $pos";
70                          die "ERROR [$pos] $@" if $@;                                  last;
71                            }
72    
73                            eval "$code";
74                            if ( $@ ) {
75                                    warn "ERROR [$pos] $@\n";
76                            } else {
77                                    $affected++;
78                            }
79                  };                  };
80    
81                  report $view;                  report "$affected affected records $view";
82    
83                  if ( defined $out ) {                  if ( defined $out ) {
84                          my $dump = dump $out;                          my $dump = dump $out;
85                          my $len  = length $dump;                          my $len  = length $dump;
86                          my $path = "out/$nr.$package";                          my $path = "out/$nr.$package";
87                          print "# $view $offset/$limit $len bytes $path"                          print "out $view $offset/$limit $len bytes $path"
88                                  , $len < 10000 ?  " \$out = $dump" : ' SAVED ONLY'                                  , ( $len < 10000 ?  " \$out = $dump" : ' SAVED ONLY' )
89                                  , "\n"                                  , "\n"
90                                  ;                                  ;
91    
92                          write_file $path, $dump;                          write_file $path, $dump;
93                          report "save $path";                          report "save $path";
94                    } else {
95                            warn "W: no \$out defined!";
96                  }                  }
97    
98          }          }

Legend:
Removed from v.4  
changed lines
  Added in v.5

  ViewVC Help
Powered by ViewVC 1.1.26