Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8
提交
747b6ced
D
dragonwell8
项目概览
openanolis
/
dragonwell8
通知
5
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
747b6ced
编写于
3月 07, 2012
作者:
K
katleman
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
a67e6a1d
e73481fb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
208 addition
and
0 deletion
+208
-0
make/scripts/normalizer.pl
make/scripts/normalizer.pl
+208
-0
未找到文件。
make/scripts/normalizer.pl
0 → 100644
浏览文件 @
747b6ced
#!/usr/bin/perl
#
# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
#
# Parses java files:
# 1. Removes from the end of lines spaces and TABs
# 2. Replaces TABs by spaces
# 3. Replaces all NewLine separators by Unix NewLine separators
# 4. Makes one and only one empty line at the end of each file
if
(
$#ARGV
<
0
)
{
&usage
;
die
;
}
use
Cwd
'
abs_path
';
my
@extensions
=
("
java
");
# Read options
my
$dirpos
=
0
;
while
(
$dirpos
<
$#ARGV
)
{
if
(
$ARGV
[
$dirpos
]
eq
"
-e
")
{
@extensions
=
split
(
/,/
,
$ARGV
[
$dirpos
+
1
]);
}
else
{
last
;
}
$dirpos
+=
2
;
}
if
(
$dirpos
>
$#ARGV
)
{
&usage
;
die
;
}
use
Cwd
;
my
$currdir
=
getcwd
;
my
$allfiles
=
0
;
my
$filecount
=
0
;
my
@tabvalues
;
# Init tabvalues
push
(
@tabvalues
,
"
");
for
(
my
$i
=
1
;
$i
<
8
;
$i
++
)
{
push
(
@tabvalues
,
$tabvalues
[
$i
-
1
]
.
"
");
}
open
(
FILELIST
,
"
>
$currdir
/filelist
")
or
die
"
Failed while open
$currdir
/filelist: $!
\n
";
while
(
$dirpos
<=
$#ARGV
)
{
use
File::
Find
;
find
(
\
&parse_file
,
abs_path
(
$ARGV
[
$dirpos
]));
$dirpos
+=
1
;
}
close
(
FILELIST
);
use
Cwd
'
chdir
';
chdir
$currdir
;
print
"
Checked
$allfiles
file(s)
\n
";
print
"
Modified
$filecount
file(s)
\n
";
print
"
See results in the file
$currdir
/filelist
\n
";
sub
parse_file
{
my
$filename
=
$
File::Find::
name
;
# Skip directories
return
if
-
d
;
# Skip SCCS files
return
if
(
$filename
=~
/\/SCCS\//
);
# Skip files with invalid extensions
my
$accepted
=
0
;
foreach
my
$ext
(
@extensions
)
{
if
(
$_
=~
/\.$ext$/i
)
{
$accepted
=
1
;
last
;
}
}
return
if
(
$accepted
==
0
);
use
File::
Basename
;
my
$dirname
=
dirname
(
$filename
);
use
Cwd
'
chdir
';
chdir
$dirname
;
open
(
FILE
,
$filename
)
or
die
"
Failed while open
$filename
: $!
\n
";
# Read file
my
@content
;
my
$line
;
my
$emptylinescount
=
0
;
my
$modified
=
0
;
while
(
$line
=
<
FILE
>
)
{
my
$originalline
=
$line
;
# Process line
# Remove from the end of the line spaces and return character
while
(
$line
=~
/\s$/
)
{
chop
(
$line
);
}
# Replace TABs
for
(
my
$i
=
0
;
$i
<
length
(
$line
);
$i
++
)
{
if
(
substr
(
$line
,
$i
,
1
)
=~
/\t/
)
{
$line
=
substr
(
$line
,
0
,
$i
)
.
$tabvalues
[
7
-
(
$i
%
8
)]
.
substr
(
$line
,
$i
+
1
);
}
}
if
(
length
(
$line
)
==
0
)
{
$emptylinescount
++
;
}
else
{
while
(
$emptylinescount
>
0
)
{
push
(
@content
,
"");
$emptylinescount
--
;
}
push
(
@content
,
$line
);
}
if
(
$originalline
ne
(
$line
.
"
\n
"))
{
$modified
=
1
;
}
}
$allfiles
++
;
if
(
$emptylinescount
>
0
)
{
$modified
=
1
;
}
close
(
FILE
);
if
(
$modified
!=
0
)
{
# Write file
open
(
FILE
,
"
>
$filename
")
or
die
"
Failed while open
$filename
: $!
\n
";
for
(
my
$i
=
0
;
$i
<=
$#content
;
$i
++
)
{
print
FILE
"
$content
[
$i
]
\n
";
}
close
(
FILE
);
# Print name from current dir
if
(
index
(
$filename
,
$currdir
)
==
0
)
{
print
FILELIST
substr
(
$filename
,
length
(
$currdir
)
+
1
);
}
else
{
print
FILELIST
$filename
;
}
print
FILELIST
"
\n
";
$filecount
++
;
print
"
$filename
: modified
\n
";
}
}
sub
usage
{
print
"
Usage:
\n
";
print
"
normalizer.pl [-options] <dir> [dir2 dir3 ...]
\n
";
print
"
Available options:
\n
";
print
"
-e comma separated files extensions. By default accepts only java files
\n
";
print
"
\n
";
print
"
Examples:
\n
";
print
"
normalizer.pl -e c,cpp,h,hpp .
\n
";
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录