The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
#
# This file is part of Curses-Toolkit
#
# This software is copyright (c) 2011 by Damien "dams" Krotkine.
#
# This is free software; you can redistribute it and/or modify it under
# the same terms as the Perl 5 programming language system itself.
#

use strict;
use warnings;

eval('require Perl::Tidy');
$@ and die 'Please install Perl::Tidy (e.g. cpan Perl::Tidy)';

use Cwd                   qw( cwd );
use File::Spec::Functions qw( catfile catdir );
use File::Find::Rule;
use FindBin qw( $Bin );
use Path::Class qw( dir );

# check if perltidyrc file exists
my $perltidyrc = catfile( $Bin, 'perltidyrc' );
-e $perltidyrc
  or die "cannot find perltidy configuration file: $perltidyrc\n";

my $root_dir = dir($Bin)->parent;

my $lib_dir = $root_dir->subdir('lib');
my @files = @ARGV || File::Find::Rule->file->name("*.pm")->in("$lib_dir");

# formatting documents
my $cmd = "perltidy --backup-and-modify-in-place --profile=$perltidyrc @files";

system($cmd)
  and die "perltidy exited with return code " . ($? >> 8);

# removing backup files
unlink map { $_ . '.bak'} @files;