{-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PatternSynonyms #-} module Distribution.Client.CmdInstall.ClientInstallFlags ( InstallMethod (..) , ClientInstallFlags (..) , defaultClientInstallFlags , clientInstallOptions , clientInstallFlagsGrammar ) where import Distribution.Client.Compat.Prelude import Distribution.Compat.Lens (Lens') import Distribution.FieldGrammar import Prelude () import Distribution.ReadE ( parsecToReadE , succeedReadE ) import Distribution.Simple.Command ( OptionField (..) , ShowOrParseArgs (..) , option , reqArg ) import Distribution.Simple.Setup ( Flag , flagToList , toFlag , trueArg , pattern Flag ) import Distribution.Client.Types.InstallMethod ( InstallMethod (..) ) import Distribution.Client.Types.OverwritePolicy ( OverwritePolicy (..) ) import Distribution.Client.Utils.Parsec import qualified Distribution.Compat.CharParsing as P data ClientInstallFlags = ClientInstallFlags { ClientInstallFlags -> Flag Bool cinstInstallLibs :: Flag Bool , ClientInstallFlags -> Flag FilePath cinstEnvironmentPath :: Flag FilePath , ClientInstallFlags -> Flag OverwritePolicy cinstOverwritePolicy :: Flag OverwritePolicy , ClientInstallFlags -> Flag InstallMethod cinstInstallMethod :: Flag InstallMethod , ClientInstallFlags -> Flag FilePath cinstInstalldir :: Flag FilePath } deriving (ClientInstallFlags -> ClientInstallFlags -> Bool (ClientInstallFlags -> ClientInstallFlags -> Bool) -> (ClientInstallFlags -> ClientInstallFlags -> Bool) -> Eq ClientInstallFlags forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: ClientInstallFlags -> ClientInstallFlags -> Bool == :: ClientInstallFlags -> ClientInstallFlags -> Bool $c/= :: ClientInstallFlags -> ClientInstallFlags -> Bool /= :: ClientInstallFlags -> ClientInstallFlags -> Bool Eq, Int -> ClientInstallFlags -> ShowS [ClientInstallFlags] -> ShowS ClientInstallFlags -> FilePath (Int -> ClientInstallFlags -> ShowS) -> (ClientInstallFlags -> FilePath) -> ([ClientInstallFlags] -> ShowS) -> Show ClientInstallFlags forall a. (Int -> a -> ShowS) -> (a -> FilePath) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> ClientInstallFlags -> ShowS showsPrec :: Int -> ClientInstallFlags -> ShowS $cshow :: ClientInstallFlags -> FilePath show :: ClientInstallFlags -> FilePath $cshowList :: [ClientInstallFlags] -> ShowS showList :: [ClientInstallFlags] -> ShowS Show, (forall x. ClientInstallFlags -> Rep ClientInstallFlags x) -> (forall x. Rep ClientInstallFlags x -> ClientInstallFlags) -> Generic ClientInstallFlags forall x. Rep ClientInstallFlags x -> ClientInstallFlags forall x. ClientInstallFlags -> Rep ClientInstallFlags x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. ClientInstallFlags -> Rep ClientInstallFlags x from :: forall x. ClientInstallFlags -> Rep ClientInstallFlags x $cto :: forall x. Rep ClientInstallFlags x -> ClientInstallFlags to :: forall x. Rep ClientInstallFlags x -> ClientInstallFlags Generic) instance Monoid ClientInstallFlags where mempty :: ClientInstallFlags mempty = ClientInstallFlags forall a. (Generic a, GMonoid (Rep a)) => a gmempty mappend :: ClientInstallFlags -> ClientInstallFlags -> ClientInstallFlags mappend = ClientInstallFlags -> ClientInstallFlags -> ClientInstallFlags forall a. Semigroup a => a -> a -> a (<>) instance Semigroup ClientInstallFlags where <> :: ClientInstallFlags -> ClientInstallFlags -> ClientInstallFlags (<>) = ClientInstallFlags -> ClientInstallFlags -> ClientInstallFlags forall a. (Generic a, GSemigroup (Rep a)) => a -> a -> a gmappend instance Binary ClientInstallFlags instance NFData ClientInstallFlags instance Structured ClientInstallFlags defaultClientInstallFlags :: ClientInstallFlags defaultClientInstallFlags :: ClientInstallFlags defaultClientInstallFlags = ClientInstallFlags { cinstInstallLibs :: Flag Bool cinstInstallLibs = Bool -> Flag Bool forall a. a -> Flag a toFlag Bool False , cinstEnvironmentPath :: Flag FilePath cinstEnvironmentPath = Flag FilePath forall a. Monoid a => a mempty , cinstOverwritePolicy :: Flag OverwritePolicy cinstOverwritePolicy = Flag OverwritePolicy forall a. Monoid a => a mempty , cinstInstallMethod :: Flag InstallMethod cinstInstallMethod = Flag InstallMethod forall a. Monoid a => a mempty , cinstInstalldir :: Flag FilePath cinstInstalldir = Flag FilePath forall a. Monoid a => a mempty } clientInstallOptions :: ShowOrParseArgs -> [OptionField ClientInstallFlags] clientInstallOptions :: ShowOrParseArgs -> [OptionField ClientInstallFlags] clientInstallOptions ShowOrParseArgs _ = [ FilePath -> LFlags -> FilePath -> (ClientInstallFlags -> Flag Bool) -> (Flag Bool -> ClientInstallFlags -> ClientInstallFlags) -> MkOptDescr (ClientInstallFlags -> Flag Bool) (Flag Bool -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags -> OptionField ClientInstallFlags forall get set a. FilePath -> LFlags -> FilePath -> get -> set -> MkOptDescr get set a -> OptionField a option [] [FilePath "lib"] ( FilePath "Install libraries rather than executables from the target package " FilePath -> ShowS forall a. Semigroup a => a -> a -> a <> FilePath "(provisional, see https://github.com/haskell/cabal/issues/6481 for more information)." ) ClientInstallFlags -> Flag Bool cinstInstallLibs (\Flag Bool v ClientInstallFlags flags -> ClientInstallFlags flags{cinstInstallLibs = v}) MkOptDescr (ClientInstallFlags -> Flag Bool) (Flag Bool -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags forall a. MkOptDescr (a -> Flag Bool) (Flag Bool -> a -> a) a trueArg , FilePath -> LFlags -> FilePath -> (ClientInstallFlags -> Flag FilePath) -> (Flag FilePath -> ClientInstallFlags -> ClientInstallFlags) -> MkOptDescr (ClientInstallFlags -> Flag FilePath) (Flag FilePath -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags -> OptionField ClientInstallFlags forall get set a. FilePath -> LFlags -> FilePath -> get -> set -> MkOptDescr get set a -> OptionField a option [] [FilePath "package-env", FilePath "env"] FilePath "Set the environment file that may be modified." ClientInstallFlags -> Flag FilePath cinstEnvironmentPath (\Flag FilePath pf ClientInstallFlags flags -> ClientInstallFlags flags{cinstEnvironmentPath = pf}) (FilePath -> ReadE (Flag FilePath) -> (Flag FilePath -> LFlags) -> MkOptDescr (ClientInstallFlags -> Flag FilePath) (Flag FilePath -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags forall b a. Monoid b => FilePath -> ReadE b -> (b -> LFlags) -> MkOptDescr (a -> b) (b -> a -> a) a reqArg FilePath "ENV" ((FilePath -> Flag FilePath) -> ReadE (Flag FilePath) forall a. (FilePath -> a) -> ReadE a succeedReadE FilePath -> Flag FilePath forall a. a -> Flag a Flag) Flag FilePath -> LFlags forall a. Flag a -> [a] flagToList) , FilePath -> LFlags -> FilePath -> (ClientInstallFlags -> Flag OverwritePolicy) -> (Flag OverwritePolicy -> ClientInstallFlags -> ClientInstallFlags) -> MkOptDescr (ClientInstallFlags -> Flag OverwritePolicy) (Flag OverwritePolicy -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags -> OptionField ClientInstallFlags forall get set a. FilePath -> LFlags -> FilePath -> get -> set -> MkOptDescr get set a -> OptionField a option [] [FilePath "overwrite-policy"] FilePath "How to handle already existing symlinks." ClientInstallFlags -> Flag OverwritePolicy cinstOverwritePolicy (\Flag OverwritePolicy v ClientInstallFlags flags -> ClientInstallFlags flags{cinstOverwritePolicy = v}) (MkOptDescr (ClientInstallFlags -> Flag OverwritePolicy) (Flag OverwritePolicy -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags -> OptionField ClientInstallFlags) -> MkOptDescr (ClientInstallFlags -> Flag OverwritePolicy) (Flag OverwritePolicy -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags -> OptionField ClientInstallFlags forall a b. (a -> b) -> a -> b $ FilePath -> ReadE (Flag OverwritePolicy) -> (Flag OverwritePolicy -> LFlags) -> MkOptDescr (ClientInstallFlags -> Flag OverwritePolicy) (Flag OverwritePolicy -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags forall b a. Monoid b => FilePath -> ReadE b -> (b -> LFlags) -> MkOptDescr (a -> b) (b -> a -> a) a reqArg FilePath "always|never|prompt" (ShowS -> ParsecParser (Flag OverwritePolicy) -> ReadE (Flag OverwritePolicy) forall a. ShowS -> ParsecParser a -> ReadE a parsecToReadE (\FilePath err -> FilePath "Error parsing overwrite-policy: " FilePath -> ShowS forall a. [a] -> [a] -> [a] ++ FilePath err) (OverwritePolicy -> Flag OverwritePolicy forall a. a -> Flag a toFlag (OverwritePolicy -> Flag OverwritePolicy) -> ParsecParser OverwritePolicy -> ParsecParser (Flag OverwritePolicy) forall a b. (a -> b) -> ParsecParser a -> ParsecParser b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` ParsecParser OverwritePolicy forall a (m :: * -> *). (Parsec a, CabalParsing m) => m a forall (m :: * -> *). CabalParsing m => m OverwritePolicy parsec)) ((OverwritePolicy -> FilePath) -> [OverwritePolicy] -> LFlags forall a b. (a -> b) -> [a] -> [b] map OverwritePolicy -> FilePath forall a. Pretty a => a -> FilePath prettyShow ([OverwritePolicy] -> LFlags) -> (Flag OverwritePolicy -> [OverwritePolicy]) -> Flag OverwritePolicy -> LFlags forall b c a. (b -> c) -> (a -> b) -> a -> c . Flag OverwritePolicy -> [OverwritePolicy] forall a. Flag a -> [a] flagToList) , FilePath -> LFlags -> FilePath -> (ClientInstallFlags -> Flag InstallMethod) -> (Flag InstallMethod -> ClientInstallFlags -> ClientInstallFlags) -> MkOptDescr (ClientInstallFlags -> Flag InstallMethod) (Flag InstallMethod -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags -> OptionField ClientInstallFlags forall get set a. FilePath -> LFlags -> FilePath -> get -> set -> MkOptDescr get set a -> OptionField a option [] [FilePath "install-method"] FilePath "How to install the executables." ClientInstallFlags -> Flag InstallMethod cinstInstallMethod (\Flag InstallMethod v ClientInstallFlags flags -> ClientInstallFlags flags{cinstInstallMethod = v}) (MkOptDescr (ClientInstallFlags -> Flag InstallMethod) (Flag InstallMethod -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags -> OptionField ClientInstallFlags) -> MkOptDescr (ClientInstallFlags -> Flag InstallMethod) (Flag InstallMethod -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags -> OptionField ClientInstallFlags forall a b. (a -> b) -> a -> b $ FilePath -> ReadE (Flag InstallMethod) -> (Flag InstallMethod -> LFlags) -> MkOptDescr (ClientInstallFlags -> Flag InstallMethod) (Flag InstallMethod -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags forall b a. Monoid b => FilePath -> ReadE b -> (b -> LFlags) -> MkOptDescr (a -> b) (b -> a -> a) a reqArg FilePath "default|copy|symlink" (ShowS -> ParsecParser (Flag InstallMethod) -> ReadE (Flag InstallMethod) forall a. ShowS -> ParsecParser a -> ReadE a parsecToReadE (\FilePath err -> FilePath "Error parsing install-method: " FilePath -> ShowS forall a. [a] -> [a] -> [a] ++ FilePath err) (InstallMethod -> Flag InstallMethod forall a. a -> Flag a toFlag (InstallMethod -> Flag InstallMethod) -> ParsecParser InstallMethod -> ParsecParser (Flag InstallMethod) forall a b. (a -> b) -> ParsecParser a -> ParsecParser b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b `fmap` ParsecParser InstallMethod forall (m :: * -> *). CabalParsing m => m InstallMethod parsecInstallMethod)) ((InstallMethod -> FilePath) -> [InstallMethod] -> LFlags forall a b. (a -> b) -> [a] -> [b] map InstallMethod -> FilePath forall a. Pretty a => a -> FilePath prettyShow ([InstallMethod] -> LFlags) -> (Flag InstallMethod -> [InstallMethod]) -> Flag InstallMethod -> LFlags forall b c a. (b -> c) -> (a -> b) -> a -> c . Flag InstallMethod -> [InstallMethod] forall a. Flag a -> [a] flagToList) , FilePath -> LFlags -> FilePath -> (ClientInstallFlags -> Flag FilePath) -> (Flag FilePath -> ClientInstallFlags -> ClientInstallFlags) -> MkOptDescr (ClientInstallFlags -> Flag FilePath) (Flag FilePath -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags -> OptionField ClientInstallFlags forall get set a. FilePath -> LFlags -> FilePath -> get -> set -> MkOptDescr get set a -> OptionField a option [] [FilePath "installdir"] FilePath "Where to install (by symlinking or copying) the executables in." ClientInstallFlags -> Flag FilePath cinstInstalldir (\Flag FilePath v ClientInstallFlags flags -> ClientInstallFlags flags{cinstInstalldir = v}) (MkOptDescr (ClientInstallFlags -> Flag FilePath) (Flag FilePath -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags -> OptionField ClientInstallFlags) -> MkOptDescr (ClientInstallFlags -> Flag FilePath) (Flag FilePath -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags -> OptionField ClientInstallFlags forall a b. (a -> b) -> a -> b $ FilePath -> ReadE (Flag FilePath) -> (Flag FilePath -> LFlags) -> MkOptDescr (ClientInstallFlags -> Flag FilePath) (Flag FilePath -> ClientInstallFlags -> ClientInstallFlags) ClientInstallFlags forall b a. Monoid b => FilePath -> ReadE b -> (b -> LFlags) -> MkOptDescr (a -> b) (b -> a -> a) a reqArg FilePath "DIR" ((FilePath -> Flag FilePath) -> ReadE (Flag FilePath) forall a. (FilePath -> a) -> ReadE a succeedReadE FilePath -> Flag FilePath forall a. a -> Flag a Flag) Flag FilePath -> LFlags forall a. Flag a -> [a] flagToList ] clientInstallFlagsGrammar :: ( FieldGrammar c g , c (Identity (Flag Bool)) , c (Flag' FilePathNT FilePath) , c (Identity (Flag OverwritePolicy)) , c (Identity (Flag InstallMethod)) ) => g ClientInstallFlags ClientInstallFlags clientInstallFlagsGrammar :: forall (c :: * -> Constraint) (g :: * -> * -> *). (FieldGrammar c g, c (Identity (Flag Bool)), c (Flag' FilePathNT FilePath), c (Identity (Flag OverwritePolicy)), c (Identity (Flag InstallMethod))) => g ClientInstallFlags ClientInstallFlags clientInstallFlagsGrammar = Flag Bool -> Flag FilePath -> Flag OverwritePolicy -> Flag InstallMethod -> Flag FilePath -> ClientInstallFlags ClientInstallFlags (Flag Bool -> Flag FilePath -> Flag OverwritePolicy -> Flag InstallMethod -> Flag FilePath -> ClientInstallFlags) -> g ClientInstallFlags (Flag Bool) -> g ClientInstallFlags (Flag FilePath -> Flag OverwritePolicy -> Flag InstallMethod -> Flag FilePath -> ClientInstallFlags) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> FieldName -> ALens' ClientInstallFlags (Flag Bool) -> Flag Bool -> g ClientInstallFlags (Flag Bool) forall (c :: * -> Constraint) (g :: * -> * -> *) a s. (FieldGrammar c g, c (Identity a), Eq a) => FieldName -> ALens' s a -> a -> g s a optionalFieldDef FieldName "lib" ALens' ClientInstallFlags (Flag Bool) Lens' ClientInstallFlags (Flag Bool) cinstInstallLibsLens Flag Bool forall a. Monoid a => a mempty g ClientInstallFlags (Flag FilePath -> Flag OverwritePolicy -> Flag InstallMethod -> Flag FilePath -> ClientInstallFlags) -> g ClientInstallFlags (Flag FilePath) -> g ClientInstallFlags (Flag OverwritePolicy -> Flag InstallMethod -> Flag FilePath -> ClientInstallFlags) forall a b. g ClientInstallFlags (a -> b) -> g ClientInstallFlags a -> g ClientInstallFlags b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> ( FieldName -> (Flag FilePath -> Flag' FilePathNT FilePath) -> ALens' ClientInstallFlags (Flag FilePath) -> Flag FilePath -> g ClientInstallFlags (Flag FilePath) forall b a s. (c b, Newtype a b, Eq a) => FieldName -> (a -> b) -> ALens' s a -> a -> g s a forall (c :: * -> Constraint) (g :: * -> * -> *) b a s. (FieldGrammar c g, c b, Newtype a b, Eq a) => FieldName -> (a -> b) -> ALens' s a -> a -> g s a optionalFieldDefAla FieldName "package-env" ((FilePath -> FilePathNT) -> Flag FilePath -> Flag' FilePathNT FilePath forall a b. (a -> b) -> Flag a -> Flag' b a alaFlag FilePath -> FilePathNT FilePathNT) ALens' ClientInstallFlags (Flag FilePath) Lens' ClientInstallFlags (Flag FilePath) cinstEnvironmentPathLens Flag FilePath forall a. Monoid a => a mempty g ClientInstallFlags (Flag FilePath) -> g ClientInstallFlags (Flag FilePath) -> g ClientInstallFlags (Flag FilePath) forall a b. g ClientInstallFlags a -> g ClientInstallFlags b -> g ClientInstallFlags a forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a <* FieldName -> (Flag FilePath -> Flag' FilePathNT FilePath) -> ALens' ClientInstallFlags (Flag FilePath) -> Flag FilePath -> g ClientInstallFlags (Flag FilePath) forall b a s. (c b, Newtype a b, Eq a) => FieldName -> (a -> b) -> ALens' s a -> a -> g s a forall (c :: * -> Constraint) (g :: * -> * -> *) b a s. (FieldGrammar c g, c b, Newtype a b, Eq a) => FieldName -> (a -> b) -> ALens' s a -> a -> g s a optionalFieldDefAla FieldName "env" ((FilePath -> FilePathNT) -> Flag FilePath -> Flag' FilePathNT FilePath forall a b. (a -> b) -> Flag a -> Flag' b a alaFlag FilePath -> FilePathNT FilePathNT) ALens' ClientInstallFlags (Flag FilePath) Lens' ClientInstallFlags (Flag FilePath) cinstEnvironmentPathLens Flag FilePath forall a. Monoid a => a mempty ) g ClientInstallFlags (Flag OverwritePolicy -> Flag InstallMethod -> Flag FilePath -> ClientInstallFlags) -> g ClientInstallFlags (Flag OverwritePolicy) -> g ClientInstallFlags (Flag InstallMethod -> Flag FilePath -> ClientInstallFlags) forall a b. g ClientInstallFlags (a -> b) -> g ClientInstallFlags a -> g ClientInstallFlags b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> FieldName -> ALens' ClientInstallFlags (Flag OverwritePolicy) -> Flag OverwritePolicy -> g ClientInstallFlags (Flag OverwritePolicy) forall (c :: * -> Constraint) (g :: * -> * -> *) a s. (FieldGrammar c g, c (Identity a), Eq a) => FieldName -> ALens' s a -> a -> g s a optionalFieldDef FieldName "overwrite-policy" ALens' ClientInstallFlags (Flag OverwritePolicy) Lens' ClientInstallFlags (Flag OverwritePolicy) cinstOverwritePolicyLens Flag OverwritePolicy forall a. Monoid a => a mempty g ClientInstallFlags (Flag InstallMethod -> Flag FilePath -> ClientInstallFlags) -> g ClientInstallFlags (Flag InstallMethod) -> g ClientInstallFlags (Flag FilePath -> ClientInstallFlags) forall a b. g ClientInstallFlags (a -> b) -> g ClientInstallFlags a -> g ClientInstallFlags b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> FieldName -> ALens' ClientInstallFlags (Flag InstallMethod) -> Flag InstallMethod -> g ClientInstallFlags (Flag InstallMethod) forall (c :: * -> Constraint) (g :: * -> * -> *) a s. (FieldGrammar c g, c (Identity a), Eq a) => FieldName -> ALens' s a -> a -> g s a optionalFieldDef FieldName "install-method" ALens' ClientInstallFlags (Flag InstallMethod) Lens' ClientInstallFlags (Flag InstallMethod) cinstInstallMethodLens Flag InstallMethod forall a. Monoid a => a mempty g ClientInstallFlags (Flag FilePath -> ClientInstallFlags) -> g ClientInstallFlags (Flag FilePath) -> g ClientInstallFlags ClientInstallFlags forall a b. g ClientInstallFlags (a -> b) -> g ClientInstallFlags a -> g ClientInstallFlags b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> FieldName -> (Flag FilePath -> Flag' FilePathNT FilePath) -> ALens' ClientInstallFlags (Flag FilePath) -> Flag FilePath -> g ClientInstallFlags (Flag FilePath) forall b a s. (c b, Newtype a b, Eq a) => FieldName -> (a -> b) -> ALens' s a -> a -> g s a forall (c :: * -> Constraint) (g :: * -> * -> *) b a s. (FieldGrammar c g, c b, Newtype a b, Eq a) => FieldName -> (a -> b) -> ALens' s a -> a -> g s a optionalFieldDefAla FieldName "installdir" ((FilePath -> FilePathNT) -> Flag FilePath -> Flag' FilePathNT FilePath forall a b. (a -> b) -> Flag a -> Flag' b a alaFlag FilePath -> FilePathNT FilePathNT) ALens' ClientInstallFlags (Flag FilePath) Lens' ClientInstallFlags (Flag FilePath) cinstInstalldirLens Flag FilePath forall a. Monoid a => a mempty {-# SPECIALIZE clientInstallFlagsGrammar :: ParsecFieldGrammar' ClientInstallFlags #-} parsecInstallMethod :: CabalParsing m => m InstallMethod parsecInstallMethod :: forall (m :: * -> *). CabalParsing m => m InstallMethod parsecInstallMethod = do name <- (Char -> Bool) -> m FilePath forall (m :: * -> *). CharParsing m => (Char -> Bool) -> m FilePath P.munch1 Char -> Bool isAlpha case name of FilePath "copy" -> InstallMethod -> m InstallMethod forall a. a -> m a forall (f :: * -> *) a. Applicative f => a -> f a pure InstallMethod InstallMethodCopy FilePath "symlink" -> InstallMethod -> m InstallMethod forall a. a -> m a forall (f :: * -> *) a. Applicative f => a -> f a pure InstallMethod InstallMethodSymlink FilePath _ -> FilePath -> m InstallMethod forall a. FilePath -> m a forall (m :: * -> *) a. Parsing m => FilePath -> m a P.unexpected (FilePath -> m InstallMethod) -> FilePath -> m InstallMethod forall a b. (a -> b) -> a -> b $ FilePath "InstallMethod: " FilePath -> ShowS forall a. [a] -> [a] -> [a] ++ FilePath name cinstInstallLibsLens :: Lens' ClientInstallFlags (Flag Bool) cinstInstallLibsLens :: Lens' ClientInstallFlags (Flag Bool) cinstInstallLibsLens Flag Bool -> f (Flag Bool) f ClientInstallFlags c = (Flag Bool -> ClientInstallFlags) -> f (Flag Bool) -> f ClientInstallFlags forall a b. (a -> b) -> f a -> f b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap (\Flag Bool x -> ClientInstallFlags c{cinstInstallLibs = x}) (Flag Bool -> f (Flag Bool) f (ClientInstallFlags -> Flag Bool cinstInstallLibs ClientInstallFlags c)) {-# INLINEABLE cinstInstallLibsLens #-} cinstEnvironmentPathLens :: Lens' ClientInstallFlags (Flag FilePath) cinstEnvironmentPathLens :: Lens' ClientInstallFlags (Flag FilePath) cinstEnvironmentPathLens Flag FilePath -> f (Flag FilePath) f ClientInstallFlags c = (Flag FilePath -> ClientInstallFlags) -> f (Flag FilePath) -> f ClientInstallFlags forall a b. (a -> b) -> f a -> f b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap (\Flag FilePath x -> ClientInstallFlags c{cinstEnvironmentPath = x}) (Flag FilePath -> f (Flag FilePath) f (ClientInstallFlags -> Flag FilePath cinstEnvironmentPath ClientInstallFlags c)) {-# INLINEABLE cinstEnvironmentPathLens #-} cinstOverwritePolicyLens :: Lens' ClientInstallFlags (Flag OverwritePolicy) cinstOverwritePolicyLens :: Lens' ClientInstallFlags (Flag OverwritePolicy) cinstOverwritePolicyLens Flag OverwritePolicy -> f (Flag OverwritePolicy) f ClientInstallFlags c = (Flag OverwritePolicy -> ClientInstallFlags) -> f (Flag OverwritePolicy) -> f ClientInstallFlags forall a b. (a -> b) -> f a -> f b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap (\Flag OverwritePolicy x -> ClientInstallFlags c{cinstOverwritePolicy = x}) (Flag OverwritePolicy -> f (Flag OverwritePolicy) f (ClientInstallFlags -> Flag OverwritePolicy cinstOverwritePolicy ClientInstallFlags c)) {-# INLINEABLE cinstOverwritePolicyLens #-} cinstInstallMethodLens :: Lens' ClientInstallFlags (Flag InstallMethod) cinstInstallMethodLens :: Lens' ClientInstallFlags (Flag InstallMethod) cinstInstallMethodLens Flag InstallMethod -> f (Flag InstallMethod) f ClientInstallFlags c = (Flag InstallMethod -> ClientInstallFlags) -> f (Flag InstallMethod) -> f ClientInstallFlags forall a b. (a -> b) -> f a -> f b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap (\Flag InstallMethod x -> ClientInstallFlags c{cinstInstallMethod = x}) (Flag InstallMethod -> f (Flag InstallMethod) f (ClientInstallFlags -> Flag InstallMethod cinstInstallMethod ClientInstallFlags c)) {-# INLINEABLE cinstInstallMethodLens #-} cinstInstalldirLens :: Lens' ClientInstallFlags (Flag FilePath) cinstInstalldirLens :: Lens' ClientInstallFlags (Flag FilePath) cinstInstalldirLens Flag FilePath -> f (Flag FilePath) f ClientInstallFlags c = (Flag FilePath -> ClientInstallFlags) -> f (Flag FilePath) -> f ClientInstallFlags forall a b. (a -> b) -> f a -> f b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap (\Flag FilePath x -> ClientInstallFlags c{cinstInstalldir = x}) (Flag FilePath -> f (Flag FilePath) f (ClientInstallFlags -> Flag FilePath cinstInstalldir ClientInstallFlags c)) {-# INLINEABLE cinstInstalldirLens #-}