#!/usr/bin/perl

use strict;
use warnings;
use open ':std', ':encoding(UTF-8)';

use FileHandle;
use Perl::Tidy;

use lib '/app/tools/admin/lib';
use Admin::App::ToolsDir;

use lib '/app/tools/common/lib';
use Common::ProgressBar;

my $argv = "-npro ";
$argv .= "-b ";
$argv .= "-l=140 ";
$argv .= "-bar ";
$argv .= "-ce ";
$argv .= "-sot ";
$argv .= "-sbl ";
$argv .= "-nsbl ";

my $files = Admin::App::ToolsDir->all_perl_files;
my $bar = Common::ProgressBar->new( scalar @{$files}, 'Tidying' );

my $errfile = FileHandle->new( 'tidyall.err', 'w' );
$errfile->autoflush(1);

foreach my $file ( @{$files} ) {
    my $error_str;
    my $err = Perl::Tidy::perltidy(
        'argv'      => $argv,
        'source'    => $file,
        'errorfile' => \$error_str,
    );
    $errfile->print("$file\n$error_str\n") if defined $error_str;
    unlink "$file.bak" if -e "$file.bak";
    $bar->update();
}

$bar->finish;

$errfile->close;

unlink $errfile unless -s $errfile;
