- catchall :: IO a -> IO a -> IO a
- ortryrunning :: IO ExitCode -> IO ExitCode -> IO ExitCode
- nubsort :: Ord a => [a] -> [a]
- breakCommand :: String -> (String, [String])
- clarifyErrors :: IO a -> String -> IO a
- prettyException :: Exception -> String
- prettyError :: IOError -> String
- putStrLnError :: String -> IO ()
- putDocLnError :: Doc -> IO ()
- withCurrentDirectory :: FilePathLike p => p -> IO a -> IO a
- withUMask :: String -> IO a -> IO a
- askUser :: String -> IO String
- stripCr :: String -> String
- showHexLen :: Integral a => Int -> a -> String
- add_to_error_loc :: Exception -> String -> Exception
- maybeGetEnv :: String -> IO (Maybe String)
- firstNotBlank :: [String] -> Maybe String
- firstJustM :: Monad m => [m (Maybe a)] -> m (Maybe a)
- firstJustIO :: [IO (Maybe a)] -> IO (Maybe a)
- isUnsupportedOperationError :: IOError -> Bool
- isHardwareFaultError :: IOError -> Bool
- get_viewer :: IO String
- edit_file :: FilePathLike p => p -> IO ExitCode
- run_editor :: FilePath -> IO ExitCode
- promptYorn :: [Char] -> IO Char
- promptCharFancy :: String -> [Char] -> Maybe Char -> [Char] -> IO Char
- environmentHelpEditor :: ([String], [String])
- environmentHelpPager :: ([String], [String])
- formatPath :: String -> String
- filterFilePaths :: [FilePath] -> AnchoredPath -> t -> Bool
- filterPaths :: [AnchoredPath] -> AnchoredPath -> t -> Bool
Documentation
ortryrunning :: IO ExitCode -> IO ExitCode -> IO ExitCodeSource
Given two shell commands as arguments, execute the former. The latter is then executed if the former failed because the executable wasn't found (code 127), wasn't executable (code 126) or some other exception occurred. Other failures (such as the user holding ^C) do not cause the second command to be tried.
breakCommand :: String -> (String, [String])Source
clarifyErrors :: IO a -> String -> IO aSource
prettyError :: IOError -> StringSource
putStrLnError :: String -> IO ()Source
putDocLnError :: Doc -> IO ()Source
withCurrentDirectory :: FilePathLike p => p -> IO a -> IO aSource
showHexLen :: Integral a => Int -> a -> StringSource
add_to_error_loc :: Exception -> String -> ExceptionSource
firstNotBlank :: [String] -> Maybe StringSource
Returns Just l where l is first non-blank string in input array; Nothing if no non-blank entries
firstJustM :: Monad m => [m (Maybe a)] -> m (Maybe a)Source
The firstJustM returns the first Just entry in a list of monadic operations. This is close to
`listToMaybe fmap
sequence`, but the sequence operator evaluates all monadic members of the
list before passing it along (i.e. sequence is strict). The firstJustM is lazy in that list
member monads are only evaluated up to the point where the first Just entry is obtained.
firstJustIO :: [IO (Maybe a)] -> IO (Maybe a)Source
The firstJustIO is a slight modification to firstJustM: the entries in the list must be IO monad operations and the firstJustIO will silently turn any monad call that throws an exception into Nothing, basically causing it to be ignored.
edit_file :: FilePathLike p => p -> IO ExitCodeSource
run_editor :: FilePath -> IO ExitCodeSource
promptYorn :: [Char] -> IO CharSource
environmentHelpEditor :: ([String], [String])Source
environmentHelpPager :: ([String], [String])Source
formatPath :: String -> StringSource
Tree filtering.
filterFilePaths :: [FilePath] -> AnchoredPath -> t -> BoolSource
Same as filterPath
, but for ordinary FilePath
s (as opposed to
AnchoredPath).
filterPaths :: [AnchoredPath] -> AnchoredPath -> t -> BoolSource
Construct a filter from a list of AnchoredPaths, that will accept any path that is either a parent or a child of any of the listed paths, and discard everything else.