Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
project
drupal
Commits
2568de09
Commit
2568de09
authored
Mar 09, 2009
by
Dries Buytaert
Browse files
- Patch
#340940
by grendzy, Damien Tournoud: remove code-style.pl. Death by coder module.
parent
32e04215
Changes
2
Hide whitespace changes
Inline
Side-by-side
scripts/code-clean.sh
deleted
100644 → 0
View file @
32e04215
#!/bin/sh
# $Id$
find
.
-name
"*~"
-type
f | xargs
rm
-f
find
.
-name
".#*"
-type
f | xargs
rm
-f
find
.
-name
"*.rej"
-type
f | xargs
rm
-f
find
.
-name
"*.orig"
-type
f | xargs
rm
-f
find
.
-name
"DEADJOE"
-type
f | xargs
rm
-f
find
.
-type
f |
grep
-v
".psp"
|
grep
-v
".gif"
|
grep
-v
".jpg"
|
grep
-v
".png"
|
grep
-v
".tgz"
|
grep
-v
".ico"
|
grep
-v
"druplicon"
| xargs perl
-wi
-pe
's/\s+$/\n/'
find
.
-type
f |
grep
-v
".psp"
|
grep
-v
".gif"
|
grep
-v
".jpg"
|
grep
-v
".png"
|
grep
-v
".tgz"
|
grep
-v
".ico"
|
grep
-v
"druplicon"
| xargs perl
-wi
-pe
's/\t/ /g'
scripts/code-style.pl
deleted
100644 → 0
View file @
32e04215
#!/usr/bin/perl -w
# $Id$
use
Pod::
Usage
;
use
Getopt::
Long
qw(GetOptions)
;
Getopt::Long::
Configure
("
bundling
");
my
%opt
=
(
"
help
"
=>
0
,
'
debug
'
=>
0
,
);
if
(
!
GetOptions
(
\
%opt
,
'
help|?
',
'
debug
',
))
{
pod2usage
(
-
exitval
=>
1
,
'
verbose
'
=>
0
);
}
pod2usage
(
-
exitval
=>
0
,
-
verbose
=>
2
)
if
(
$opt
{'
help
'});
$debug
=
$opt
{'
debug
'};
$comment
=
0
;
#flag used to signal we're inside /* */
$program
=
0
;
#flag used to signal we're inside <?php ?>
#read the file
while
(
<>
)
{
$org
=
$_
;
s/\\["']//g
;
# please don't use nested comments for now... thanks!
# handles comments // style, but don't mess with http://
s/\/\/[^:].*//
;
# handles comments /**/ on a single line
s/\/\*.*\*\///g
;
# handles comments /**/ over several lines
if
(
$comment
==
1
)
{
if
(
s/.*\*\///
)
{
$comment
=
0
;
}
else
{
next
;
}
}
if
(
s/\/\*.*//
)
{
$comment
=
1
;
}
if
(
/^\s*#/
)
{
next
;
}
if
(
s/<\?php//
)
{
$program
=
1
;
}
if
(
/\?>/
)
{
$program
=
0
;
}
# enforce "bar". foo() ."bar" syntax
if
(
/^("[^"]*"|[^"])*("[^"]*")\.[^ ]/
&&
$program
)
{
$msg
=
"
'
\"
.' -> '
\"
. '
";
}
elsif
(
/^("[^"]*"|[^"])*("[^"]*")\s+\./
&&
$program
)
{
$msg
=
"
'
\"
.' -> '
\"
.'
";
}
# enforce "bar". foo() ."bar" syntax
elsif
(
/^("[^"]*"|[^"])*[^ "]\.("[^"]*")/
&&
$program
)
{
$msg
=
"
'.
\"
' -> '.
\"
'
";
}
elsif
(
/^("[^"]*"|[^"])*[^ "]\.\s+("[^"]*")/
&&
$program
)
{
$msg
=
"
'.
\"
' -> '.
\"
'
";
}
# XHTML requires closing tag
elsif
(
/<br>/i
)
{
$msg
=
"
'<br>' -> '<br />'
";
}
elsif
(
/\$REQUEST_URI/i
)
{
$msg
=
"
the use of REQUEST_URI is prone to XSS exploits and does not work on IIS; use request_uri() instead
";
}
elsif
(
/\"REQUEST_URI\"/i
)
{
$msg
=
"
the use of REQUEST_URI is prone to XSS exploits and does not work on IIS; use request_uri() instead
";
}
# XHTML compatibility mode suggests a blank before /
# i.e. <br />
elsif
(
/<[a-z][^>]*[^ >]\/>/i
)
{
$msg
=
"
'<foo/
"
.
"
>' -> '<foo />'
";
}
# we write '{' on the same line, not on the next
elsif
(
/^\s*{/
&&
$program
)
{
$msg
=
"
take '{' to previous line
";
}
elsif
(
/([a-z])([A-Z])/
)
{
$msg
=
"
no mixed case function or variable names, use lower case and _
";
}
elsif
(
/<[\/]*[A-Z]+[^>]*>/
)
{
$msg
=
"
XHTML demands tags to be lowercase
";
}
# trying to recognize splitted lines
# there are only a few valid last characters in programming mode,
# only sometimes it is ( if you use if/else with a single statement
# from here on we need no more strings
while
(
s/^([^"]*)"[^"]*"/$1#/
)
{};
while
(
s/^([^']*)'[^']*'/$1#/
)
{};
# it should be 'if (' all the time
if
(
/(^|[^a-zA-Z])(if|else|elseif|while|foreach|switch|return|for)\(/
)
{
$msg
=
"
'(' -> ' ('
";
}
#elsif (/[^;{}:\s\n]\s*\n*$/ && $program && !/^[\s}]*(if|else)/) {
# $msg = "don't split lines";
#}
elsif
(
/\}\s*else/
)
{
$msg
=
"
'} else' -> '}
\\
nelse'
";
}
elsif
(
/[^{\s\n]\s*\n*$/
&&
$program
&&
/^\s*(if|else)/
)
{
$msg
=
"
every if/else needs a { at eol
";
}
elsif
(
/([\(\[]) /
&&
$program
)
{
$msg
=
"
'$1 ' -> '$1'
";
}
elsif
(
/\S ([\)\]])/
&&
$program
)
{
$msg
=
"
' $1' -> '$1'
";
}
# but no brackets
elsif
(
/([a-z-A-Z_][a-zA-Z0-9_-]*)\s+\(/
&&
$program
)
{
if
(
$
1
ne
"
switch
"
and
$
1
ne
"
if
"
and
$
1
ne
"
while
"
and
$
1
ne
"
foreach
"
and
$
1
ne
"
return
"
and
$
1
ne
"
for
"
and
$
1
ne
"
elseif
")
{
$msg
=
"
'$1 (' -> '$1('
";
}
}
# there should be a space before '{'
if
(
/[^ ]{/
&&
$program
)
{
$msg
=
"
missing space before '{'
";
}
# there should be a space after ','
elsif
(
/[,][^ \n\r]/
&&
$program
)
{
$msg
=
"
missing space after ','
";
}
# spaces before and after, only foreach may use $foo=>bar
elsif
(
/[^ =|\-|\+](\+|\-)[^ =>|\-|\+]/
&&
$program
&&
!
/foreach/
)
{
$msg
=
"
'$1' -> ' $1 '
";
}
elsif
(
/[^ =](\*|==|\.=|=>|=|\|\|)[^ =>]/
&&
$program
&&
!
/foreach/
)
{
$msg
=
"
'$1' -> ' $1 '
";
}
# ensure $bar["foo"] and $bar[$foo] and $bar[0]
elsif
(
/\[[^#][^\]]*\]/
&&
!
/\[[0-9\$][^\]]*\]/
&&
!
/\[\]/
)
{
$msg
=
"
only [
\"
foo
\"
], [
\$
foo] or [0] is allowed
";
}
# first try to find missing quotes after = in (X)HTML tags
elsif
(
/<[^>]*=[a-zA-Z0-9][^>]*>/
)
{
$msg
=
"
=... -> =
\"
...
\"
";
}
if
(
defined
$msg
)
{
if
(
$debug
==
0
)
{
print
$ARGV
.
"
:
"
.
$.
.
"
:
$msg
:
"
.
$org
;
}
undef
$msg
;
}
elsif
(
$debug
==
1
)
{
print
$org
;
}
}
continue
{
close
ARGV
if
eof
;
}
__END__
=head1 NAME
code-style.pl - Review Drupal code for style
=head1 SYNOPSIS
code-style.pl [options] <filename>
Options:
-? --help detailed help message
=head1 DESCRIPTION
Originally written for Drupal (http://drupal.org/) to ensure stylish
code. This program reviews PHP code, and tries to show as many code
improvements as possible with no false positives.
=head1 OPTIONS
--comment
=head1 EXAMPLES
./code-style.pl ../index.php
=cut
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment