| 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]
- 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 Source #
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.Simple.FileMonitor.Types Methods parsec :: CabalParsing m => m FilePathRoot # | |||||
| Pretty FilePathRoot | |||||
Defined in Distribution.Simple.FileMonitor.Types | |||||
| Structured FilePathRoot | |||||
Defined in Distribution.Simple.FileMonitor.Types | |||||
| Generic FilePathRoot | |||||
Defined in Distribution.Simple.FileMonitor.Types Associated Types
| |||||
| Show FilePathRoot | |||||
Defined in Distribution.Simple.FileMonitor.Types Methods showsPrec :: Int -> FilePathRoot -> ShowS # show :: FilePathRoot -> String # showList :: [FilePathRoot] -> ShowS # | |||||
| Binary FilePathRoot | |||||
Defined in Distribution.Simple.FileMonitor.Types | |||||
| Eq FilePathRoot | |||||
Defined in Distribution.Simple.FileMonitor.Types | |||||
| type Rep FilePathRoot | |||||
Defined in Distribution.Simple.FileMonitor.Types type Rep FilePathRoot = D1 ('MetaData "FilePathRoot" "Distribution.Simple.FileMonitor.Types" "Cabal-3.16.0.0-1YZHuvI2dgR4GlGeuk23es" '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))) | |||||
getFilePathRootDirectory Source #
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 | |||||
| Generic Glob | |||||
Defined in Distribution.Simple.Glob.Internal Associated Types
| |||||
| Show Glob | |||||
| Binary Glob | |||||
| Eq Glob | |||||
| type Rep Glob | |||||
Defined in Distribution.Simple.Glob.Internal type Rep Glob = D1 ('MetaData "Glob" "Distribution.Simple.Glob.Internal" "Cabal-3.16.0.0-1YZHuvI2dgR4GlGeuk23es" '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 | |||||
| Generic GlobPiece | |||||
Defined in Distribution.Simple.Glob.Internal Associated Types
| |||||
| Show GlobPiece | |||||
| Binary GlobPiece | |||||
| Eq GlobPiece | |||||
| type Rep GlobPiece | |||||
Defined in Distribution.Simple.Glob.Internal type Rep GlobPiece = D1 ('MetaData "GlobPiece" "Distribution.Simple.Glob.Internal" "Cabal-3.16.0.0-1YZHuvI2dgR4GlGeuk23es" '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
matchFileGlob :: FilePath -> RootedGlob -> IO [FilePath] Source #
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.