-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Shell script analysis tool
--   
--   The goals of ShellCheck are:
--   
--   <ul>
--   <li>To point out and clarify typical beginner's syntax issues, that
--   causes a shell to give cryptic error messages.</li>
--   <li>To point out and clarify typical intermediate level semantic
--   problems, that causes a shell to behave strangely and
--   counter-intuitively.</li>
--   <li>To point out subtle caveats, corner cases and pitfalls, that may
--   cause an advanced user's otherwise working script to fail under future
--   circumstances.</li>
--   </ul>
@package ShellCheck
@version 0.4.1

module ShellCheck.Regex
mkRegex :: String -> Regex
matches :: String -> Regex -> Bool
matchRegex :: Regex -> String -> Maybe [String]
matchAllStrings :: Regex -> String -> [String]
matchAllSubgroups :: Regex -> String -> [[String]]
subRegex :: Regex -> String -> String -> String
splitOn :: String -> Regex -> [String]

module ShellCheck.AST
data Id
Id :: Int -> Id
data Quoted
Quoted :: Quoted
Unquoted :: Quoted
data Dashed
Dashed :: Dashed
Undashed :: Dashed
data AssignmentMode
Assign :: AssignmentMode
Append :: AssignmentMode
data FunctionKeyword
FunctionKeyword :: Bool -> FunctionKeyword
data FunctionParentheses
FunctionParentheses :: Bool -> FunctionParentheses
data CaseType
CaseBreak :: CaseType
CaseFallThrough :: CaseType
CaseContinue :: CaseType
data Token
TA_Binary :: Id -> String -> Token -> Token -> Token
TA_Expansion :: Id -> [Token] -> Token
TA_Index :: Id -> Token -> Token
TA_Sequence :: Id -> [Token] -> Token
TA_Trinary :: Id -> Token -> Token -> Token -> Token
TA_Unary :: Id -> String -> Token -> Token
TC_And :: Id -> ConditionType -> String -> Token -> Token -> Token
TC_Binary :: Id -> ConditionType -> String -> Token -> Token -> Token
TC_Group :: Id -> ConditionType -> Token -> Token
TC_Noary :: Id -> ConditionType -> Token -> Token
TC_Or :: Id -> ConditionType -> String -> Token -> Token -> Token
TC_Unary :: Id -> ConditionType -> String -> Token -> Token
T_AND_IF :: Id -> Token
T_AndIf :: Id -> (Token) -> (Token) -> Token
T_Arithmetic :: Id -> Token -> Token
T_Array :: Id -> [Token] -> Token
T_IndexedElement :: Id -> Token -> Token -> Token
T_Assignment :: Id -> AssignmentMode -> String -> (Maybe Token) -> Token -> Token
T_Backgrounded :: Id -> Token -> Token
T_Backticked :: Id -> [Token] -> Token
T_Bang :: Id -> Token
T_Banged :: Id -> Token -> Token
T_BraceExpansion :: Id -> [Token] -> Token
T_BraceGroup :: Id -> [Token] -> Token
T_CLOBBER :: Id -> Token
T_Case :: Id -> Token
T_CaseExpression :: Id -> Token -> [(CaseType, [Token], [Token])] -> Token
T_Condition :: Id -> ConditionType -> Token -> Token
T_DGREAT :: Id -> Token
T_DLESS :: Id -> Token
T_DLESSDASH :: Id -> Token
T_DSEMI :: Id -> Token
T_Do :: Id -> Token
T_DollarArithmetic :: Id -> Token -> Token
T_DollarBraced :: Id -> Token -> Token
T_DollarBracket :: Id -> Token -> Token
T_DollarDoubleQuoted :: Id -> [Token] -> Token
T_DollarExpansion :: Id -> [Token] -> Token
T_DollarSingleQuoted :: Id -> String -> Token
T_DollarBraceCommandExpansion :: Id -> [Token] -> Token
T_Done :: Id -> Token
T_DoubleQuoted :: Id -> [Token] -> Token
T_EOF :: Id -> Token
T_Elif :: Id -> Token
T_Else :: Id -> Token
T_Esac :: Id -> Token
T_Extglob :: Id -> String -> [Token] -> Token
T_FdRedirect :: Id -> String -> Token -> Token
T_Fi :: Id -> Token
T_For :: Id -> Token
T_ForArithmetic :: Id -> Token -> Token -> Token -> [Token] -> Token
T_ForIn :: Id -> String -> [Token] -> [Token] -> Token
T_Function :: Id -> FunctionKeyword -> FunctionParentheses -> String -> Token -> Token
T_GREATAND :: Id -> Token
T_Glob :: Id -> String -> Token
T_Greater :: Id -> Token
T_HereDoc :: Id -> Dashed -> Quoted -> String -> [Token] -> Token
T_HereString :: Id -> Token -> Token
T_If :: Id -> Token
T_IfExpression :: Id -> [([Token], [Token])] -> [Token] -> Token
T_In :: Id -> Token
T_IoFile :: Id -> Token -> Token -> Token
T_LESSAND :: Id -> Token
T_LESSGREAT :: Id -> Token
T_Lbrace :: Id -> Token
T_Less :: Id -> Token
T_Literal :: Id -> String -> Token
T_Lparen :: Id -> Token
T_NEWLINE :: Id -> Token
T_NormalWord :: Id -> [Token] -> Token
T_OR_IF :: Id -> Token
T_OrIf :: Id -> (Token) -> (Token) -> Token
T_Pipeline :: Id -> [Token] -> [Token] -> Token
T_ProcSub :: Id -> String -> [Token] -> Token
T_Rbrace :: Id -> Token
T_Redirecting :: Id -> [Token] -> Token -> Token
T_Rparen :: Id -> Token
T_Script :: Id -> String -> [Token] -> Token
T_Select :: Id -> Token
T_SelectIn :: Id -> String -> [Token] -> [Token] -> Token
T_Semi :: Id -> Token
T_SimpleCommand :: Id -> [Token] -> [Token] -> Token
T_SingleQuoted :: Id -> String -> Token
T_Subshell :: Id -> [Token] -> Token
T_Then :: Id -> Token
T_Until :: Id -> Token
T_UntilExpression :: Id -> [Token] -> [Token] -> Token
T_While :: Id -> Token
T_WhileExpression :: Id -> [Token] -> [Token] -> Token
T_Annotation :: Id -> [Annotation] -> Token -> Token
T_Pipe :: Id -> String -> Token
T_CoProc :: Id -> (Maybe String) -> Token -> Token
T_CoProcBody :: Id -> Token -> Token
T_Include :: Id -> Token -> Token -> Token
data Annotation
DisableComment :: Integer -> Annotation
SourceOverride :: String -> Annotation
data ConditionType
DoubleBracket :: ConditionType
SingleBracket :: ConditionType
tokenEquals :: Token -> Token -> Bool
analyze :: Monad m => (Token -> m ()) -> (Token -> m ()) -> (Token -> Token) -> Token -> m Token
getId :: Token -> Id
blank :: Monad m => Token -> m ()
doAnalysis :: Monad m => (Token -> m ()) -> Token -> m Token
doStackAnalysis :: Monad m => (Token -> m ()) -> (Token -> m ()) -> Token -> m Token
doTransform :: (Token -> Token) -> Token -> Token
instance GHC.Show.Show ShellCheck.AST.Token
instance GHC.Classes.Eq ShellCheck.AST.ConditionType
instance GHC.Show.Show ShellCheck.AST.ConditionType
instance GHC.Classes.Eq ShellCheck.AST.Annotation
instance GHC.Show.Show ShellCheck.AST.Annotation
instance GHC.Classes.Eq ShellCheck.AST.CaseType
instance GHC.Show.Show ShellCheck.AST.CaseType
instance GHC.Classes.Eq ShellCheck.AST.FunctionParentheses
instance GHC.Show.Show ShellCheck.AST.FunctionParentheses
instance GHC.Classes.Eq ShellCheck.AST.FunctionKeyword
instance GHC.Show.Show ShellCheck.AST.FunctionKeyword
instance GHC.Classes.Eq ShellCheck.AST.AssignmentMode
instance GHC.Show.Show ShellCheck.AST.AssignmentMode
instance GHC.Classes.Eq ShellCheck.AST.Dashed
instance GHC.Show.Show ShellCheck.AST.Dashed
instance GHC.Classes.Eq ShellCheck.AST.Quoted
instance GHC.Show.Show ShellCheck.AST.Quoted
instance GHC.Classes.Ord ShellCheck.AST.Id
instance GHC.Classes.Eq ShellCheck.AST.Id
instance GHC.Show.Show ShellCheck.AST.Id
instance GHC.Classes.Eq ShellCheck.AST.Token

module ShellCheck.ASTLib
isLoop :: Token -> Bool
willSplit :: Token -> Bool
isGlob :: Token -> Bool
isConstant :: Token -> Bool
isEmpty :: Token -> Bool
oversimplify :: Token -> [[Char]]
getFlagsUntil :: ([Char] -> Bool) -> Token -> [(Token, [Char])]
getAllFlags :: Token -> [(Token, [Char])]
getLeadingFlags :: Token -> [(Token, [Char])]
bracedString :: Token -> [Char]
isArrayExpansion :: Token -> Bool
mayBecomeMultipleArgs :: Token -> Bool
willBecomeMultipleArgs :: Token -> Bool
willConcatInAssignment :: Token -> Bool
getLiteralString :: Token -> Maybe String
onlyLiteralString :: Token -> String
getUnquotedLiteral :: Token -> Maybe [Char]
getGlobOrLiteralString :: Token -> Maybe String
getLiteralStringExt :: (Token -> Maybe String) -> Token -> Maybe String
isLiteral :: Token -> Bool
getWordParts :: Token -> [Token]
braceExpand :: Token -> [Token]
getCommandName :: Token -> Maybe String
getCommandBasename :: Token -> Maybe [Char]
isAssignment :: Token -> Bool
getCommandSequences :: Token -> [[Token]]

module ShellCheck.Interface
data SystemInterface m
SystemInterface :: (String -> m (Either ErrorMessage String)) -> SystemInterface m
[siReadFile] :: SystemInterface m -> String -> m (Either ErrorMessage String)
data CheckSpec
CheckSpec :: String -> String -> [Integer] -> Maybe Shell -> CheckSpec
[csFilename] :: CheckSpec -> String
[csScript] :: CheckSpec -> String
[csExcludedWarnings] :: CheckSpec -> [Integer]
[csShellTypeOverride] :: CheckSpec -> Maybe Shell
data CheckResult
CheckResult :: String -> [PositionedComment] -> CheckResult
[crFilename] :: CheckResult -> String
[crComments] :: CheckResult -> [PositionedComment]
emptyCheckSpec :: CheckSpec
data ParseSpec
ParseSpec :: String -> String -> ParseSpec
[psFilename] :: ParseSpec -> String
[psScript] :: ParseSpec -> String
data ParseResult
ParseResult :: [PositionedComment] -> Map Id Position -> Maybe Token -> ParseResult
[prComments] :: ParseResult -> [PositionedComment]
[prTokenPositions] :: ParseResult -> Map Id Position
[prRoot] :: ParseResult -> Maybe Token
data AnalysisSpec
AnalysisSpec :: Token -> Maybe Shell -> ExecutionMode -> AnalysisSpec
[asScript] :: AnalysisSpec -> Token
[asShellType] :: AnalysisSpec -> Maybe Shell
[asExecutionMode] :: AnalysisSpec -> ExecutionMode
data AnalysisResult
AnalysisResult :: [TokenComment] -> AnalysisResult
[arComments] :: AnalysisResult -> [TokenComment]
data Shell
Ksh :: Shell
Sh :: Shell
Bash :: Shell
data ExecutionMode
Executed :: ExecutionMode
Sourced :: ExecutionMode
type ErrorMessage = String
type Code = Integer
data Severity
ErrorC :: Severity
WarningC :: Severity
InfoC :: Severity
StyleC :: Severity
data Position
Position :: String -> Integer -> Integer -> Position
[posFile] :: Position -> String
[posLine] :: Position -> Integer
[posColumn] :: Position -> Integer
data Comment
Comment :: Severity -> Code -> String -> Comment
data PositionedComment
PositionedComment :: Position -> Comment -> PositionedComment
data TokenComment
TokenComment :: Id -> Comment -> TokenComment
mockedSystemInterface :: [(String, String)] -> SystemInterface Identity
instance GHC.Classes.Eq ShellCheck.Interface.TokenComment
instance GHC.Show.Show ShellCheck.Interface.TokenComment
instance GHC.Classes.Eq ShellCheck.Interface.CheckResult
instance GHC.Show.Show ShellCheck.Interface.CheckResult
instance GHC.Classes.Eq ShellCheck.Interface.ParseResult
instance GHC.Show.Show ShellCheck.Interface.ParseResult
instance GHC.Classes.Eq ShellCheck.Interface.PositionedComment
instance GHC.Show.Show ShellCheck.Interface.PositionedComment
instance GHC.Classes.Eq ShellCheck.Interface.Comment
instance GHC.Show.Show ShellCheck.Interface.Comment
instance GHC.Classes.Eq ShellCheck.Interface.Position
instance GHC.Show.Show ShellCheck.Interface.Position
instance GHC.Classes.Ord ShellCheck.Interface.Severity
instance GHC.Classes.Eq ShellCheck.Interface.Severity
instance GHC.Show.Show ShellCheck.Interface.Severity
instance GHC.Classes.Eq ShellCheck.Interface.ExecutionMode
instance GHC.Show.Show ShellCheck.Interface.ExecutionMode
instance GHC.Classes.Eq ShellCheck.Interface.CheckSpec
instance GHC.Show.Show ShellCheck.Interface.CheckSpec
instance GHC.Classes.Eq ShellCheck.Interface.Shell
instance GHC.Show.Show ShellCheck.Interface.Shell
instance GHC.Classes.Eq ShellCheck.Interface.ParseSpec
instance GHC.Show.Show ShellCheck.Interface.ParseSpec

module ShellCheck.Data
shellcheckVersion :: String
internalVariables :: [[Char]]
variablesWithoutSpaces :: [[Char]]
commonCommands :: [[Char]]
sampleWords :: [[Char]]
shellForExecutable :: String -> Maybe Shell

module ShellCheck.Parser
parseScript :: Monad m => SystemInterface m -> ParseSpec -> m ParseResult
runTests :: IO Bool
instance GHC.Show.Show ShellCheck.Parser.Context
instance GHC.Classes.Eq ShellCheck.Parser.ParseNote
instance GHC.Show.Show ShellCheck.Parser.ParseNote
instance GHC.Classes.Eq ShellCheck.Parser.Note
instance GHC.Show.Show ShellCheck.Parser.Note

module ShellCheck.Analytics
runAnalytics :: AnalysisSpec -> AnalysisResult
runTests :: IO Bool
instance GHC.Show.Show ShellCheck.Analytics.VariableState
instance GHC.Show.Show ShellCheck.Analytics.StackData
instance GHC.Show.Show ShellCheck.Analytics.DataType
instance GHC.Show.Show ShellCheck.Analytics.DataSource
instance GHC.Classes.Eq ShellCheck.Analytics.Scope
instance GHC.Show.Show ShellCheck.Analytics.Scope

module ShellCheck.Analyzer
analyzeScript :: AnalysisSpec -> AnalysisResult

module ShellCheck.Checker
checkScript :: Monad m => SystemInterface m -> CheckSpec -> m CheckResult
runTests :: IO Bool

module ShellCheck.Formatter.Format
data Formatter
Formatter :: IO () -> (CheckResult -> String -> IO ()) -> (FilePath -> ErrorMessage -> IO ()) -> IO () -> Formatter
[header] :: Formatter -> IO ()
[onResult] :: Formatter -> CheckResult -> String -> IO ()
[onFailure] :: Formatter -> FilePath -> ErrorMessage -> IO ()
[footer] :: Formatter -> IO ()
lineNo :: PositionedComment -> Integer
colNo :: PositionedComment -> Integer
codeNo :: PositionedComment -> Code
messageText :: PositionedComment -> String
severityText :: PositionedComment -> String
makeNonVirtual :: [PositionedComment] -> String -> [PositionedComment]

module ShellCheck.Formatter.CheckStyle
format :: IO Formatter

module ShellCheck.Formatter.GCC
format :: IO Formatter

module ShellCheck.Formatter.JSON
format :: IO Formatter
instance Text.JSON.JSON ShellCheck.Interface.PositionedComment

module ShellCheck.Formatter.TTY
format :: IO Formatter
