--- trunk/bin/BackupPC_updatedb 2005/07/29 17:33:23 28 +++ trunk/bin/BackupPC_updatedb 2005/07/31 12:40:51 29 @@ -192,14 +192,6 @@ my ($broj) = $sth->{backups_broj}->fetchrow_array(); next if ($broj > 0); - $sth->{insert_backups}->execute( - $hostID, - $backupNum, - $backup->{'endTime'}, - $backup->{'type'} - ); - $dbh->commit(); - my $files = BackupPC::View->new($bpc, $hostname, \@backups); foreach my $share ($files->shareList($backupNum)) { @@ -210,6 +202,15 @@ print " $nf/$f files $nd/$d dirs\n"; $dbh->commit(); } + + $sth->{insert_backups}->execute( + $hostID, + $backupNum, + $backup->{'endTime'}, + $backup->{'type'} + ); + $dbh->commit(); + } } undef $sth; @@ -271,17 +272,16 @@ my ($bpc, $hostname, $backups, $backupNum, $share, $dir, $shareID) = @_; - my ($nr_files, $new_files, $nr_dirs, $new_dirs) = (0,0,0,0); +#print STDERR "recurse($hostname,$backupNum,$share,$dir,$shareID)\n"; - my @stack; + my ($nr_files, $new_files, $nr_dirs, $new_dirs) = (0,0,0,0); { # scope + my @stack; my $files = BackupPC::View->new($bpc, $hostname, $backups); my $filesInBackup = $files->dirAttrib($backupNum, $share, $dir); -print STDERR "$hostname: $share | $dir | $backupNum\n"; - # first, add all the entries in current directory foreach my $path_key (keys %{$filesInBackup}) { my @data = ( @@ -306,12 +306,14 @@ if (! $beenThere->{$key} && ! found_in_db(@data)) { +##print STDERR "# key: $key [", $beenThere->{$key},"]"; $sth->{'insert_files'}->execute(@data); - print STDERR "$key\n"; if ($filesInBackup->{$path_key}->{'type'} == BPC_FTYPE_DIR) { $new_dirs++; +##print STDERR " dir\n"; } else { $new_files++; +##print STDERR " file\n"; } } $beenThere->{$key}++; @@ -319,7 +321,10 @@ if ($filesInBackup->{$path_key}->{'type'} == BPC_FTYPE_DIR) { $nr_dirs++; - push @stack, [ $bpc, $hostname, $backups, $backupNum, $share, $path_key, $shareID ] unless ($beenThere->{$key}); + my $full_path = $dir . '/' . $path_key; + push @stack, $full_path; +##print STDERR "### store to stack: $full_path\n"; + # my ($f,$nf,$d,$nd) = recurseDir($bpc, $hostname, $backups, $backupNum, $share, $path_key, $shareID) unless ($beenThere->{$key}); # # $nr_files += $f; @@ -332,14 +337,16 @@ } } - } +##print STDERR "# STACK ",join(", ", @stack),"\n"; - foreach my $r (@stack) { - my ($f,$nf,$d,$nd) = recurseDir(@{$r}); - $nr_files += $f; - $new_files += $nf; - $nr_dirs += $d; - $new_dirs += $nd; + while ( my $dir = shift @stack ) { + my ($f,$nf,$d,$nd) = recurseDir($bpc, $hostname, $backups, $backupNum, $share, $dir, $shareID); +# print STDERR "## $dir f: $f nf: $nf d: $d nd: $nd\n"; + $nr_files += $f; + $new_files += $nf; + $nr_dirs += $d; + $new_dirs += $nd; + } } return ($nr_files, $new_files, $nr_dirs, $new_dirs);