1
0
mirror of synced 2026-01-22 02:05:22 +00:00
2015-07-14 20:18:40 +02:00

79 lines
1.5 KiB
Perl
Executable File

#!perl -w
#
# Test that every perl + shell script we have contains no tabs.
#
# Steve
# --
#
use strict;
use File::Find;
use Test::NoTabs;
# Check all Perl files
all_perl_files_ok();
#
# Find all the files beneath the current directory,
# and call 'checkFile' with the name.
#
find( { wanted => \&checkFile, no_chdir => 1 }, '.' );
#
# Check a file.
#
#
sub checkFile
{
# The file.
my $file = $File::Find::name;
# We don't care about directories or symbolic links
return if ( ! -f $file );
return if ( -l $file );
# Nor about backup files.
return if ( $file =~ /~$/ );
# Nor about Makefiles
return if ( $file =~ /\/Makefile$/ );
# Nor about dot files
return if ( $file =~ m{/\.[^/]+$} );
# Nor about files which start with ./debian/
return if ( $file =~ /^\.\/debian\// );
# Nor about Changlog
return if ( $file =~ /^\.\/ChangeLog$/ );
# Finally mercurial and git files are fine.
return if ( $file =~ /\.(hg|git)\// );
# See if it is a shell/perl file.
my $isShell = 0;
my $isPerl = 0;
# Read the file.
open( INPUT, "<", $file );
foreach my $line ( <INPUT> )
{
if ( ( $line =~ /\/bin\/sh/ ) ||
( $line =~ /\/bin\/bash/ ) )
{
$isShell = 1;
last;
}
if ( $line =~ /\/usr\/bin\/perl/ )
{
last;
}
}
close( INPUT );
#
# Run check if it is a shell file.
#
notabs_ok( $file ) if $isShell;
}