Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
镜像
koalaman
ShellCheck
提交
f835c2d4
S
ShellCheck
项目概览
镜像
/
koalaman
/
ShellCheck
上一次同步 大约 1 年
通知
43
Star
0
Fork
1
代码
文件
提交
分支
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,发现更多精彩内容 >>
提交
f835c2d4
编写于
4月 16, 2016
作者:
V
Vidar Holen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix handling of spaces in shebangs.
上级
db0c8c2d
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
21 addition
and
5 deletion
+21
-5
ShellCheck/AnalyzerLib.hs
ShellCheck/AnalyzerLib.hs
+7
-4
ShellCheck/Parser.hs
ShellCheck/Parser.hs
+12
-1
quicktest
quicktest
+1
-0
test/shellcheck.hs
test/shellcheck.hs
+1
-0
未找到文件。
ShellCheck/AnalyzerLib.hs
浏览文件 @
f835c2d4
...
...
@@ -17,7 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-}
{-# LANGUAGE TemplateHaskell #-}
-- prop_testing
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE FlexibleContexts #-}
module
ShellCheck.AnalyzerLib
where
import
ShellCheck.AST
...
...
@@ -37,8 +37,10 @@ import Data.List
import
Data.Maybe
import
qualified
Data.Map
as
Map
import
Test.QuickCheck.All
(
forAllProperties
)
-- prop_testing
import
Test.QuickCheck.Test
(
quickCheckWithResult
,
stdArgs
,
maxSuccess
)
--prop_testing
import
Test.QuickCheck.All
(
forAllProperties
)
import
Test.QuickCheck.Test
(
quickCheckWithResult
,
stdArgs
,
maxSuccess
)
import
Debug.Trace
type
Analysis
=
ReaderT
Parameters
(
Writer
[
TokenComment
])
()
...
...
@@ -111,6 +113,7 @@ prop_determineShell4 = determineShell (fromJust $ pScript
"#!/bin/ksh
\n
#shellcheck shell=sh
\n
foo"
)
==
Sh
prop_determineShell5
=
determineShell
(
fromJust
$
pScript
"#shellcheck shell=sh
\n
foo"
)
==
Sh
prop_determineShell6
=
determineShell
(
fromJust
$
pScript
"#! /bin/sh"
)
==
Sh
determineShell
t
=
fromMaybe
Bash
$
do
shellString
<-
foldl
mplus
Nothing
$
getCandidates
t
shellForExecutable
shellString
...
...
@@ -621,4 +624,4 @@ filterByAnnotation token =
return
[]
runTests
=
$
(
[
|
$
(
forAllProperties
)
(
quickCheckWithResult
(
stdArgs
{
maxSuccess
=
1
})
)
|
])
-- prop_testing
runTests
=
$
(
[
|
$
(
forAllProperties
)
(
quickCheckWithResult
(
stdArgs
{
maxSuccess
=
1
})
)
|
])
ShellCheck/Parser.hs
浏览文件 @
f835c2d4
...
...
@@ -2345,8 +2345,10 @@ ifParse p t f =
prop_readShebang1
=
isOk
readShebang
"#!/bin/sh
\n
"
prop_readShebang2
=
isWarning
readShebang
"!# /bin/sh
\n
"
prop_readShebang3
=
isNotOk
readShebang
"#shellcheck shell=/bin/sh
\n
"
prop_readShebang4
=
isWarning
readShebang
"! /bin/sh"
readShebang
=
do
try
readCorrect
<|>
try
readSwapped
try
readCorrect
<|>
try
readSwapped
<|>
try
readMissingHash
many
linewhitespace
str
<-
many
$
noneOf
"
\r\n
"
optional
carriageReturn
optional
linefeed
...
...
@@ -2359,6 +2361,15 @@ readShebang = do
parseProblemAt
pos
ErrorC
1084
"Use #!, not !#, for the shebang."
readMissingHash
=
do
pos
<-
getPosition
char
'!'
lookAhead
$
do
many
linewhitespace
char
'/'
parseProblemAt
pos
ErrorC
1104
"Use #!, not just !, for the shebang."
verifyEof
=
eof
<|>
choice
[
ifParsable
g_Lparen
$
parseProblem
ErrorC
1088
"Parsing stopped here. Invalid use of parentheses?"
,
...
...
quicktest
浏览文件 @
f835c2d4
...
...
@@ -9,6 +9,7 @@
,ShellCheck.Parser.runTests
,ShellCheck.Checker.runTests
,ShellCheck.Checks.Commands.runTests
,ShellCheck.AnalyzerLib.runTests
]'
|
tr
-d
'\n'
| cabal repl 2>&1 |
tee
/dev/stderr
)
if
[[
$var
==
*
$'
\n
True'
*
]]
then
...
...
test/shellcheck.hs
浏览文件 @
f835c2d4
...
...
@@ -13,6 +13,7 @@ main = do
ShellCheck
.
Checker
.
runTests
,
ShellCheck
.
Checks
.
Commands
.
runTests
,
ShellCheck
.
Analytics
.
runTests
,
ShellCheck
.
AnalyzerLib
.
runTests
,
ShellCheck
.
Parser
.
runTests
]
if
and
results
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录