-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Shell script analysis tool -- -- The goals of ShellCheck are: -- -- @package ShellCheck @version 0.4.5 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_Assignment :: 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_UnparsedIndex :: Id -> SourcePos -> String -> Token T_Assignment :: Id -> AssignmentMode -> String -> [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_IoDuplicate :: Id -> Token -> String -> 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 ShellOverride :: String -> Annotation data ConditionType DoubleBracket :: ConditionType SingleBracket :: ConditionType tokenEquals :: Token -> Token -> Bool analyze :: Monad m => (Token -> m ()) -> (Token -> m ()) -> (Token -> m 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] getCommand :: Token -> Maybe Token getCommandName :: Token -> Maybe String getCommandNameFromExpansion :: Token -> Maybe String getCommandBasename :: Token -> Maybe [Char] isAssignment :: Token -> Bool isOnlyRedirection :: Token -> Bool isFunction :: Token -> Bool getCommandSequences :: Token -> [[Token]] getAssociativeArrays :: Token -> [String] 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 FormatterOptions FormatterOptions :: ColorOption -> FormatterOptions [foColorOption] :: FormatterOptions -> ColorOption data Shell Ksh :: Shell Sh :: Shell Bash :: Shell Dash :: 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 -> Position -> Comment -> PositionedComment data TokenComment TokenComment :: Id -> Comment -> TokenComment data ColorOption ColorAuto :: ColorOption ColorAlways :: ColorOption ColorNever :: ColorOption mockedSystemInterface :: [(String, String)] -> SystemInterface Identity instance GHC.Show.Show ShellCheck.Interface.ColorOption instance GHC.Classes.Eq ShellCheck.Interface.ColorOption instance GHC.Classes.Ord ShellCheck.Interface.ColorOption 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]] arrayVariables :: [[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.HereDocContext 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.AnalyzerLib type Analysis = ReaderT Parameters (Writer [TokenComment]) () data Parameters Parameters :: [StackData] -> Map Id Token -> Shell -> Bool -> Parameters [variableFlow] :: Parameters -> [StackData] [parentMap] :: Parameters -> Map Id Token [shellType] :: Parameters -> Shell [shellTypeSpecified] :: Parameters -> Bool data Scope SubshellScope :: String -> Scope NoneScope :: Scope data StackData StackScope :: Scope -> StackData StackScopeEnd :: StackData Assignment :: (Token, Token, String, DataType) -> StackData Reference :: (Token, Token, String) -> StackData data DataType DataString :: DataSource -> DataType DataArray :: DataSource -> DataType data DataSource SourceFrom :: [Token] -> DataSource SourceExternal :: DataSource SourceDeclaration :: DataSource SourceInteger :: DataSource data VariableState Dead :: Token -> String -> VariableState Alive :: VariableState defaultSpec :: Token -> AnalysisSpec pScript :: String -> Maybe Token makeComment :: Severity -> Id -> Code -> String -> TokenComment addComment :: MonadWriter [t] m => t -> 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 () makeParameters :: AnalysisSpec -> Parameters prop_determineShell0 :: Bool prop_determineShell1 :: Bool prop_determineShell2 :: Bool prop_determineShell3 :: Bool prop_determineShell4 :: Bool prop_determineShell5 :: Bool prop_determineShell6 :: Bool determineShell :: Token -> Shell getParentTree :: Token -> Map Id Token getTokenMap :: Token -> Map Id Token isQuoteFree :: Map Id Token -> Token -> Bool isStrictlyQuoteFree :: Map Id Token -> Token -> Bool isQuoteFreeNode :: Bool -> Map Id Token -> Token -> Bool isParamTo :: Map Id Token -> String -> Token -> Bool getClosestCommand :: Map Id Token -> Token -> Maybe Token usedAsCommandName :: Map Id Token -> Token -> Bool getPath :: Map Id Token -> Token -> [Token] isParentOf :: Map Id Token -> Token -> Token -> Bool parents :: Parameters -> Token -> [Token] pathTo :: MonadReader Parameters m => Token -> m [Token] tokenIsJustCommandOutput :: Token -> Bool getVariableFlow :: Shell -> Map Id Token -> Token -> [StackData] leadType :: Shell -> Map Id Token -> Token -> Scope getModifiedVariables :: Token -> [(Token, Token, String, DataType)] isClosingFileOp :: Token -> Bool getReferencedVariableCommand :: Token -> [(Token, Token, String)] getModifiedVariableCommand :: Token -> [(Token, Token, [Char], DataType)] getIndexReferences :: String -> [String] getOffsetReferences :: String -> [String] getReferencedVariables :: Map Id Token -> Token -> [(Token, Token, [Char])] dataTypeFrom :: (DataSource -> DataType) -> Token -> DataType isCommand :: Token -> String -> Bool isUnqualifiedCommand :: Token -> String -> Bool isCommandMatch :: Token -> (String -> Bool) -> Bool isConfusedGlobRegex :: [Char] -> Bool isVariableStartChar :: Char -> Bool isVariableChar :: Char -> Bool variableNameRegex :: Regex prop_isVariableName1 :: Bool prop_isVariableName2 :: Bool prop_isVariableName3 :: Bool isVariableName :: [Char] -> Bool getVariablesFromLiteralToken :: Token -> [String] prop_getVariablesFromLiteral1 :: Bool getVariablesFromLiteral :: String -> [String] prop_getBracedReference1 :: Bool prop_getBracedReference2 :: Bool prop_getBracedReference3 :: Bool prop_getBracedReference4 :: Bool prop_getBracedReference5 :: Bool prop_getBracedReference6 :: Bool prop_getBracedReference7 :: Bool prop_getBracedReference8 :: Bool prop_getBracedReference9 :: Bool prop_getBracedReference10 :: Bool prop_getBracedReference11 :: Bool prop_getBracedReference12 :: Bool prop_getBracedReference13 :: Bool getBracedReference :: [Char] -> [Char] prop_getBracedModifier1 :: Bool prop_getBracedModifier2 :: Bool prop_getBracedModifier3 :: Bool getBracedModifier :: [Char] -> [Char] potentially :: Monad m => Maybe (m ()) -> m () headOrDefault :: t -> [t] -> t (!!!) :: [a] -> Int -> Maybe a filterByAnnotation :: Token -> [TokenComment] -> [TokenComment] runTests :: IO Bool instance GHC.Show.Show ShellCheck.AnalyzerLib.VariableState instance GHC.Show.Show ShellCheck.AnalyzerLib.StackData instance GHC.Show.Show ShellCheck.AnalyzerLib.DataType instance GHC.Show.Show ShellCheck.AnalyzerLib.DataSource instance GHC.Classes.Eq ShellCheck.AnalyzerLib.Scope instance GHC.Show.Show ShellCheck.AnalyzerLib.Scope module ShellCheck.Analytics runAnalytics :: AnalysisSpec -> [TokenComment] 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 endLineNo :: PositionedComment -> Integer colNo :: PositionedComment -> Integer endColNo :: 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 :: FormatterOptions -> IO Formatter module ShellCheck.Checks.Commands runChecks :: AnalysisSpec -> [TokenComment] runTests :: IO Bool instance GHC.Classes.Ord ShellCheck.Checks.Commands.CommandName instance GHC.Classes.Eq ShellCheck.Checks.Commands.CommandName module ShellCheck.Analyzer analyzeScript :: AnalysisSpec -> AnalysisResult module ShellCheck.Checker checkScript :: Monad m => SystemInterface m -> CheckSpec -> m CheckResult runTests :: IO Bool