ShellCheck-0.9.0: Shell script analysis tool
Safe HaskellSafe-Inferred
LanguageHaskell98

ShellCheck.AnalyzerLib

Documentation

type Analysis = AnalyzerM () #

nullCheck :: b -> RWST Parameters [TokenComment] Cache Identity () #

data Checker #

Constructors

Checker 

Instances

Instances details
Monoid Checker # 
Instance details

Defined in ShellCheck.AnalyzerLib

Semigroup Checker # 
Instance details

Defined in ShellCheck.AnalyzerLib

Methods

(<>) :: Checker -> Checker -> Checker

sconcat :: NonEmpty Checker -> Checker

stimes :: Integral b => b -> Checker -> Checker

composeAnalyzers :: (a -> Analysis) -> (a -> Analysis) -> a -> Analysis #

data Parameters #

Instances

Instances details
Show Parameters # 
Instance details

Defined in ShellCheck.AnalyzerLib

Methods

showsPrec :: Int -> Parameters -> ShowS

show :: Parameters -> String

showList :: [Parameters] -> ShowS

data Cache #

Constructors

Cache 

data Scope #

Constructors

SubshellScope String 
NoneScope 

Instances

Instances details
Show Scope # 
Instance details

Defined in ShellCheck.AnalyzerLib

Methods

showsPrec :: Int -> Scope -> ShowS

show :: Scope -> String

showList :: [Scope] -> ShowS

Eq Scope # 
Instance details

Defined in ShellCheck.AnalyzerLib

Methods

(==) :: Scope -> Scope -> Bool

(/=) :: Scope -> Scope -> Bool

data StackData #

Instances

Instances details
Show StackData # 
Instance details

Defined in ShellCheck.AnalyzerLib

Methods

showsPrec :: Int -> StackData -> ShowS

show :: StackData -> String

showList :: [StackData] -> ShowS

data DataType #

Instances

Instances details
Show DataType # 
Instance details

Defined in ShellCheck.AnalyzerLib

Methods

showsPrec :: Int -> DataType -> ShowS

show :: DataType -> String

showList :: [DataType] -> ShowS

data DataSource #

Instances

Instances details
Show DataSource # 
Instance details

Defined in ShellCheck.AnalyzerLib

Methods

showsPrec :: Int -> DataSource -> ShowS

show :: DataSource -> String

showList :: [DataSource] -> ShowS

data VariableState #

Constructors

Dead Token String 
Alive 

Instances

Instances details
Show VariableState # 
Instance details

Defined in ShellCheck.AnalyzerLib

Methods

showsPrec :: Int -> VariableState -> ShowS

show :: VariableState -> String

showList :: [VariableState] -> ShowS

pScript :: [Char] -> ParseResult #

producesComments :: Checker -> String -> Maybe Bool #

makeComment :: Severity -> Id -> Code -> String -> TokenComment #

addComment :: (NFData a, MonadWriter [a] m) => a -> m () #

warn :: MonadWriter [TokenComment] m => Id -> Code -> String -> m () #

err :: MonadWriter [TokenComment] m => Id -> Code -> String -> m () #

info :: MonadWriter [TokenComment] m => Id -> Code -> String -> m () #

style :: MonadWriter [TokenComment] m => Id -> Code -> String -> m () #

errWithFix :: MonadWriter [TokenComment] m => Id -> Code -> String -> Fix -> m () #

warnWithFix :: MonadWriter [TokenComment] m => Id -> Code -> String -> Fix -> m () #

infoWithFix :: MonadWriter [TokenComment] m => Id -> Code -> String -> Fix -> m () #

styleWithFix :: MonadWriter [TokenComment] m => Id -> Code -> String -> Fix -> m () #

addCommentWithFix :: MonadWriter [TokenComment] m => Severity -> Id -> Code -> String -> Fix -> m () #

containsSetE :: Token -> Bool #

containsSetOption :: [Char] -> Token -> Bool #

containsShopt :: [Char] -> Token -> Bool #

isOptionSet :: [Char] -> Token -> Bool #

determineShellTest' :: Maybe Shell -> [Char] -> Shell #

isStrictlyQuoteFree :: Shell -> Map Id Token -> Token -> Bool #

isQuoteFree :: Shell -> Map Id Token -> Token -> Bool #

isQuoteFreeNode :: Bool -> Shell -> Map Id Token -> Token -> Bool #

isParamTo :: Map Id Token -> String -> Token -> Bool #

getClosestCommand :: Map Id Token -> Token -> Maybe Token #

getClosestCommandM :: MonadReader Parameters m => Token -> m (Maybe Token) #

usedAsCommandName :: Map Id Token -> Token -> Bool #

getPathM :: MonadReader Parameters m => Token -> m [Token] #

isParentOf :: Map Id Token -> Token -> Token -> Bool #

findFirst :: (a -> Maybe Bool) -> [a] -> Maybe a #

getVariableForTestDashV :: Token -> Maybe String #

getReferencedVariables :: Map Id Token -> Token -> [(Token, Token, [Char])] #

isDereferencingBinaryOp :: String -> Bool #

isCommand :: Token -> String -> Bool #

isUnqualifiedCommand :: Token -> String -> Bool #

isCommandMatch :: Token -> (String -> Bool) -> Bool #

isConfusedGlobRegex :: String -> Bool #

getVariablesFromLiteral :: String -> [String] #

whenShell :: (MonadReader Parameters m, Foldable t) => t Shell -> m () -> m () #

shouldIgnoreCode :: Parameters -> Integer -> Token -> Bool #

modifiesVariable :: Parameters -> Token -> [Char] -> Bool #

runTests :: IO Bool #