Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Annlix
ShellCheck
提交
206900fb
S
ShellCheck
项目概览
Annlix
/
ShellCheck
与 Fork 源项目一致
Fork自
镜像 / koalaman / ShellCheck
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
ShellCheck
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
206900fb
编写于
10月 20, 2013
作者:
V
Vidar Holen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use exit status and stderr properly in terminal tool
上级
b1af7bb8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
18 deletion
+17
-18
shellcheck.hs
shellcheck.hs
+17
-18
未找到文件。
shellcheck.hs
浏览文件 @
206900fb
...
...
@@ -24,7 +24,6 @@ import System.Environment
import
System.Exit
import
System.IO
clear
=
ansi
0
ansi
n
=
"
\x1B
["
++
(
show
n
)
++
"m"
...
...
@@ -45,27 +44,26 @@ doFile path colorFunc = do
contents
<-
readFile
actualPath
doInput
path
contents
colorFunc
else
do
putStrLn
(
colorFunc
"error"
$
"No such file: "
++
actualPath
)
hPutStrLn
stderr
(
colorFunc
"error"
$
"No such file: "
++
actualPath
)
return
False
doInput
filename
contents
colorFunc
=
do
let
fileLines
=
lines
contents
let
lineCount
=
length
fileLines
let
comments
=
shellCheck
contents
let
groups
=
groupWith
scLine
comments
if
not
$
null
comments
then
do
mapM_
(
\
x
->
do
let
lineNum
=
scLine
(
head
x
)
let
line
=
if
lineNum
<
1
||
lineNum
>
lineCount
then
""
else
fileLines
!!
(
lineNum
-
1
)
putStrLn
""
putStrLn
$
colorFunc
"message"
(
"In "
++
filename
++
" line "
++
(
show
$
lineNum
)
++
":"
)
putStrLn
(
colorFunc
"source"
line
)
mapM
(
\
c
->
putStrLn
(
colorFunc
(
scSeverity
c
)
$
cuteIndent
c
))
x
putStrLn
""
)
groups
else
do
putStrLn
(
"No comments for "
++
filename
)
mapM_
(
\
x
->
do
let
lineNum
=
scLine
(
head
x
)
let
line
=
if
lineNum
<
1
||
lineNum
>
lineCount
then
""
else
fileLines
!!
(
lineNum
-
1
)
putStrLn
""
putStrLn
$
colorFunc
"message"
(
"In "
++
filename
++
" line "
++
(
show
$
lineNum
)
++
":"
)
putStrLn
(
colorFunc
"source"
line
)
mapM
(
\
c
->
putStrLn
(
colorFunc
(
scSeverity
c
)
$
cuteIndent
c
))
x
putStrLn
""
)
groups
return
$
null
comments
cuteIndent
comment
=
(
replicate
((
scColumn
comment
)
-
1
)
' '
)
++
"^-- "
++
(
scMessage
comment
)
...
...
@@ -81,6 +79,7 @@ main = do
hPutStrLn
stderr
"shellcheck -- bash/sh script static analysis tool"
hPutStrLn
stderr
"Usage: shellcheck filenames..."
exitFailure
else
mapM
(
\
f
->
doFile
f
colors
)
args
else
do
statuses
<-
mapM
(
\
f
->
doFile
f
colors
)
args
if
and
statuses
then
exitSuccess
else
exitFailure
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录