| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Distribution.Client.Glob
Synopsis
- data RootedGlob = RootedGlob FilePathRoot Glob
- isTrivialRootedGlob :: RootedGlob -> Maybe FilePath
- data FilePathRoot
- getFilePathRootDirectory :: FilePathRoot -> FilePath -> IO FilePath
- module Distribution.Simple.Glob
- data Glob
- data GlobPiece
- = WildCard
- | Literal String
- | Union [GlobPieces]
- type GlobPieces = [GlobPiece]
- matchGlob :: FilePath -> Glob -> IO [FilePath]
- matchGlobPieces :: GlobPieces -> String -> Bool
- matchFileGlob :: FilePath -> RootedGlob -> IO [FilePath]
cabal-install globbing features
data RootedGlob #
A file path specified by globbing, relative to some root directory.
Constructors
| RootedGlob | |
Fields
| |
Instances
isTrivialRootedGlob :: RootedGlob -> Maybe FilePath #
Check if a RootedGlob doesn't actually make use of any globbing and
is in fact equivalent to a non-glob FilePath.
If it is trivial in this sense then the result is the equivalent constant
FilePath. On the other hand, if it is not trivial (so could in principle
match more than one file), then the result is Nothing.
data FilePathRoot #
Constructors
| FilePathRelative | |
| FilePathRoot FilePath | e.g. |
| FilePathHomeDir |
Instances
| Parsec FilePathRoot # | |||||
Defined in Distribution.Client.Glob Methods parsec :: CabalParsing m => m FilePathRoot # | |||||
| Pretty FilePathRoot # | |||||
Defined in Distribution.Client.Glob | |||||
| Structured FilePathRoot # | |||||
Defined in Distribution.Client.Glob | |||||
| Binary FilePathRoot # | |||||
Defined in Distribution.Client.Glob | |||||
| Generic FilePathRoot # | |||||
Defined in Distribution.Client.Glob Associated Types
| |||||
| Show FilePathRoot # | |||||
Defined in Distribution.Client.Glob Methods showsPrec :: Int -> FilePathRoot -> ShowS # show :: FilePathRoot -> String # showList :: [FilePathRoot] -> ShowS # | |||||
| Eq FilePathRoot # | |||||
Defined in Distribution.Client.Glob | |||||
| type Rep FilePathRoot # | |||||
Defined in Distribution.Client.Glob type Rep FilePathRoot = D1 ('MetaData "FilePathRoot" "Distribution.Client.Glob" "cabal-install-3.12.1.0-G554PkJj2SpDqyarXp9tbt" 'False) (C1 ('MetaCons "FilePathRelative" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FilePathRoot" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePath)) :+: C1 ('MetaCons "FilePathHomeDir" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
Arguments
| :: FilePathRoot | |
| -> FilePath | root for relative paths |
| -> IO FilePath |
Get the FilePath corresponding to a FilePathRoot.
The FilePath argument is required to supply the path for the
FilePathRelative case.
Additional re-exports
module Distribution.Simple.Glob
A filepath specified by globbing.
Constructors
| GlobDir !GlobPieces !Glob | dirGlob/glob |
| GlobDirRecursive !GlobPieces |
|
| GlobFile !GlobPieces | A file glob. |
| GlobDirTrailing | Trailing dir; a glob ending in |
Instances
| Parsec Glob | |||||
Defined in Distribution.Simple.Glob.Internal Methods parsec :: CabalParsing m => m Glob # | |||||
| Pretty Glob | |||||
Defined in Distribution.Simple.Glob.Internal | |||||
| Structured Glob | |||||
Defined in Distribution.Simple.Glob.Internal | |||||
| Binary Glob | |||||
| Generic Glob | |||||
Defined in Distribution.Simple.Glob.Internal Associated Types
| |||||
| Show Glob | |||||
| Eq Glob | |||||
| type Rep Glob | |||||
Defined in Distribution.Simple.Glob.Internal type Rep Glob = D1 ('MetaData "Glob" "Distribution.Simple.Glob.Internal" "Cabal-3.12.0.0-inplace" 'False) ((C1 ('MetaCons "GlobDir" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 GlobPieces) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Glob)) :+: C1 ('MetaCons "GlobDirRecursive" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 GlobPieces))) :+: (C1 ('MetaCons "GlobFile" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 GlobPieces)) :+: C1 ('MetaCons "GlobDirTrailing" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
A piece of a globbing pattern
Constructors
| WildCard | A wildcard |
| Literal String | A literal string |
| Union [GlobPieces] | A union of patterns, e.g. |
Instances
| Structured GlobPiece | |||||
Defined in Distribution.Simple.Glob.Internal | |||||
| Binary GlobPiece | |||||
| Generic GlobPiece | |||||
Defined in Distribution.Simple.Glob.Internal Associated Types
| |||||
| Show GlobPiece | |||||
| Eq GlobPiece | |||||
| type Rep GlobPiece | |||||
Defined in Distribution.Simple.Glob.Internal type Rep GlobPiece = D1 ('MetaData "GlobPiece" "Distribution.Simple.Glob.Internal" "Cabal-3.12.0.0-inplace" 'False) (C1 ('MetaCons "WildCard" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Literal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: C1 ('MetaCons "Union" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [GlobPieces])))) | |||||
type GlobPieces = [GlobPiece] #
A single directory or file component of a globbed path
matchGlob :: FilePath -> Glob -> IO [FilePath] #
Match a Glob against the file system, starting from a
given root directory. The results are all relative to the given root.
Since: Cabal-3.12.0.0
matchGlobPieces :: GlobPieces -> String -> Bool #
Match a globbing pattern against a file path component
matchFileGlob :: FilePath -> RootedGlob -> IO [FilePath] #
Match a RootedGlob against the file system, starting from a given
root directory for relative paths. The results of relative globs are
relative to the given root. Matches for absolute globs are absolute.