cabal-install-3.12.1.0: The command-line interface for Cabal and Hackage.
Safe HaskellNone
LanguageHaskell2010

Distribution.Client.Glob

Synopsis

cabal-install globbing features

data RootedGlob #

A file path specified by globbing, relative to some root directory.

Constructors

RootedGlob 

Fields

Instances

Instances details
Parsec RootedGlob # 
Instance details

Defined in Distribution.Client.Glob

Methods

parsec :: CabalParsing m => m RootedGlob #

Pretty RootedGlob # 
Instance details

Defined in Distribution.Client.Glob

Structured RootedGlob # 
Instance details

Defined in Distribution.Client.Glob

Binary RootedGlob # 
Instance details

Defined in Distribution.Client.Glob

Generic RootedGlob # 
Instance details

Defined in Distribution.Client.Glob

Associated Types

type Rep RootedGlob 
Instance details

Defined in Distribution.Client.Glob

type Rep RootedGlob = D1 ('MetaData "RootedGlob" "Distribution.Client.Glob" "cabal-install-3.12.1.0-G554PkJj2SpDqyarXp9tbt" 'False) (C1 ('MetaCons "RootedGlob" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePathRoot) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Glob)))
Show RootedGlob # 
Instance details

Defined in Distribution.Client.Glob

Eq RootedGlob # 
Instance details

Defined in Distribution.Client.Glob

type Rep RootedGlob # 
Instance details

Defined in Distribution.Client.Glob

type Rep RootedGlob = D1 ('MetaData "RootedGlob" "Distribution.Client.Glob" "cabal-install-3.12.1.0-G554PkJj2SpDqyarXp9tbt" 'False) (C1 ('MetaCons "RootedGlob" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePathRoot) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Glob)))

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. "/", "c:" or result of takeDrive

FilePathHomeDir 

Instances

Instances details
Parsec FilePathRoot # 
Instance details

Defined in Distribution.Client.Glob

Pretty FilePathRoot # 
Instance details

Defined in Distribution.Client.Glob

Structured FilePathRoot # 
Instance details

Defined in Distribution.Client.Glob

Binary FilePathRoot # 
Instance details

Defined in Distribution.Client.Glob

Generic FilePathRoot # 
Instance details

Defined in Distribution.Client.Glob

Associated Types

type Rep FilePathRoot 
Instance details

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)))
Show FilePathRoot # 
Instance details

Defined in Distribution.Client.Glob

Eq FilePathRoot # 
Instance details

Defined in Distribution.Client.Glob

type Rep FilePathRoot # 
Instance details

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)))

getFilePathRootDirectory #

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

data Glob #

A filepath specified by globbing.

Constructors

GlobDir !GlobPieces !Glob
dirGlob/glob
GlobDirRecursive !GlobPieces

**/glob, where ** denotes recursively traversing all directories and matching filenames on glob.

GlobFile !GlobPieces

A file glob.

GlobDirTrailing

Trailing dir; a glob ending in /.

Instances

Instances details
Parsec Glob 
Instance details

Defined in Distribution.Simple.Glob.Internal

Methods

parsec :: CabalParsing m => m Glob #

Pretty Glob 
Instance details

Defined in Distribution.Simple.Glob.Internal

Structured Glob 
Instance details

Defined in Distribution.Simple.Glob.Internal

Binary Glob 
Instance details

Defined in Distribution.Simple.Glob.Internal

Methods

put :: Glob -> Put #

get :: Get Glob #

putList :: [Glob] -> Put #

Generic Glob 
Instance details

Defined in Distribution.Simple.Glob.Internal

Associated Types

type Rep Glob 
Instance details

Defined in Distribution.Simple.Glob.Internal

Methods

from :: Glob -> Rep Glob x #

to :: Rep Glob x -> Glob #

Show Glob 
Instance details

Defined in Distribution.Simple.Glob.Internal

Methods

showsPrec :: Int -> Glob -> ShowS #

show :: Glob -> String #

showList :: [Glob] -> ShowS #

Eq Glob 
Instance details

Defined in Distribution.Simple.Glob.Internal

Methods

(==) :: Glob -> Glob -> Bool #

(/=) :: Glob -> Glob -> Bool #

type Rep Glob 
Instance details

Defined in Distribution.Simple.Glob.Internal

data GlobPiece #

A piece of a globbing pattern

Constructors

WildCard

A wildcard *

Literal String

A literal string dirABC

Union [GlobPieces]

A union of patterns, e.g. dir{a,*.txt,c}...

Instances

Instances details
Structured GlobPiece 
Instance details

Defined in Distribution.Simple.Glob.Internal

Binary GlobPiece 
Instance details

Defined in Distribution.Simple.Glob.Internal

Generic GlobPiece 
Instance details

Defined in Distribution.Simple.Glob.Internal

Associated Types

type Rep GlobPiece 
Instance details

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]))))
Show GlobPiece 
Instance details

Defined in Distribution.Simple.Glob.Internal

Eq GlobPiece 
Instance details

Defined in Distribution.Simple.Glob.Internal

type Rep GlobPiece 
Instance details

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.