#!/usr/bin/perl #window checkHTML timeout=600 =what 対象のディレクトリのすべてのhtmlファイルの文法チェック =usage 対象のディレクトリに移動して実行 =cut use strict; use File::Find; use vars qw/*name *dir *prune/; *name = *File::Find::name; *dir = *File::Find::dir; *prune = *File::Find::prune; #config my $gOpenWithApp = 'mi'; my $gOutputFileName = '____result.checkHTML'; my $gCheckHTMLScript = 'checkHTML.pl'; #global my $gIsPrintToFile = 0; my @gResultArray; my ( $gScriptFolder, $gScriptName ) = $0 =~ m!(.*)/(.+?)$!; # &run(); # sub run { my $folder = './'; my $fileName = $ARGV[0]; if( $ARGV[0] eq '-printToFile' ) { $gIsPrintToFile = 1; } elsif( $ARGV[0] =~ m!(.*)/(.+?)$! ) { $folder = $1; $fileName = $2; } chdir( $folder ); my $date = `date '+%m/%d %H:%M'`; chop $date; my $header = "CHECK : $folder : $date \n"; print $header; print "【htmllint結果 linkCheck結果 : ファイル名】\n"; File::Find::find( {wanted => \&callback_filefind}, $folder ); if( $gIsPrintToFile ) { open( STDOUT, "> $gOutputFileName" ) || die "Cant open $gOutputFileName"; select( STDOUT ); $| = 1; } print STDOUT "○ $header"; foreach( @gResultArray ) { print STDOUT $_; } close( STDOUT ); if( $gIsPrintToFile ) { `open -a $gOpenWithApp $gOutputFileName`; } `say 'ohwari'`; } sub callback_filefind { if( /^(|image|images|css|javascript|cgi-bin|dmg|sit)$/ ) { #除外フォルダ print "** skip : $_\n"; $prune = 1; } if( /^___/ ) { #除外特例 print "** skip : $_\n"; $prune = 1; } elsif( /\.s?html?$/s ) { print "check $_\n"; my $checkResult = `perl $gScriptFolder/$gCheckHTMLScript $name`; #"PATHNAME:$name\nFOLDER:$dir\nNAME:$_\n",, "--\n--\n" push( @gResultArray, $checkResult ); } }