packages feed

Lastik 0.6.4 → 0.7.0

raw patch · 9 files changed

+43/−427 lines, 9 filesdep +filemanipdep ~basePVP ok

version bump matches the API change (PVP)

Dependencies added: filemanip

Dependency ranges changed: base

API changes (from Hackage documentation)

- System.Build.Args: instance ArgShow [Char]
- System.Build.FilePather: (&&?) :: (Applicative f) => f Bool -> f Bool -> f Bool
- System.Build.FilePather: (/=&&) :: (Eq a, Functor f, Foldable t) => f a -> t a -> f Bool
- System.Build.FilePather: (/==>) :: (Applicative f1, Applicative f2) => f1 (f2 Bool) -> f1 (f2 Bool) -> f1 (f2 Bool)
- System.Build.FilePather: (/=>) :: (Applicative f) => f Bool -> f Bool -> f Bool
- System.Build.FilePather: (/=?) :: (Eq a, Functor f) => f a -> a -> f Bool
- System.Build.FilePather: (/=||) :: (Eq a, Functor f, Foldable t) => f a -> t a -> f Bool
- System.Build.FilePather: (<?>) :: FilePather a -> FilePath -> a
- System.Build.FilePather: (==&&) :: (Eq a, Functor f, Foldable t) => f a -> t a -> f Bool
- System.Build.FilePather: (===>) :: (Applicative f1, Applicative f2) => f1 (f2 Bool) -> f1 (f2 Bool) -> f1 (f2 Bool)
- System.Build.FilePather: (==>) :: (Applicative f) => f Bool -> f Bool -> f Bool
- System.Build.FilePather: (==?) :: (Eq a, Functor f) => f a -> a -> f Bool
- System.Build.FilePather: (==||) :: (Eq a, Functor f, Foldable t) => f a -> t a -> f Bool
- System.Build.FilePather: (?&&?) :: (Applicative f1, Applicative f2) => f1 (f2 Bool) -> f1 (f2 Bool) -> f1 (f2 Bool)
- System.Build.FilePather: (?||?) :: (Applicative f1, Applicative f2) => f1 (f2 Bool) -> f1 (f2 Bool) -> f1 (f2 Bool)
- System.Build.FilePather: (||?) :: (Applicative f) => f Bool -> f Bool -> f Bool
- System.Build.FilePather: Directory :: FileType
- System.Build.FilePather: File :: FileType
- System.Build.FilePather: Unknown :: FileType
- System.Build.FilePather: always :: FilePather Bool
- System.Build.FilePather: always' :: FilePather (a -> Bool)
- System.Build.FilePather: baseName :: FilePather FilePath
- System.Build.FilePather: baseName' :: FilePather (a -> FilePath)
- System.Build.FilePather: constant :: (Functor f) => f a -> f (t -> a)
- System.Build.FilePather: data FilePather a
- System.Build.FilePather: data FileType
- System.Build.FilePather: directory :: FilePather FilePath
- System.Build.FilePather: directory' :: FilePather (a -> FilePath)
- System.Build.FilePather: extension :: FilePather FilePath
- System.Build.FilePather: extension' :: FilePather (a -> FilePath)
- System.Build.FilePather: fileName :: FilePather FilePath
- System.Build.FilePather: fileName' :: FilePather (a -> FilePath)
- System.Build.FilePather: filePath :: FilePather FilePath
- System.Build.FilePather: filePather :: (FilePath -> a) -> FilePather a
- System.Build.FilePather: find :: RecursePredicate -> FilterPredicate -> FilePath -> IO [FilePath]
- System.Build.FilePather: hasExtension :: FilePather Bool
- System.Build.FilePather: hasExtension' :: FilePather (a -> Bool)
- System.Build.FilePather: hasTrailingPathSeparator :: FilePather Bool
- System.Build.FilePather: hasTrailingPathSeparator' :: FilePather (a -> Bool)
- System.Build.FilePather: instance (Monoid a) => Monoid (FilePather a)
- System.Build.FilePather: instance Applicative FilePather
- System.Build.FilePather: instance Eq FileType
- System.Build.FilePather: instance Functor FilePather
- System.Build.FilePather: instance Monad FilePather
- System.Build.FilePather: instance Show FileType
- System.Build.FilePather: isAbsolute :: FilePather Bool
- System.Build.FilePather: isAbsolute' :: FilePather (a -> Bool)
- System.Build.FilePather: isDirectory :: (Applicative f) => f (FileType -> Bool)
- System.Build.FilePather: isFile :: (Applicative f) => f (FileType -> Bool)
- System.Build.FilePather: isRelative :: FilePather Bool
- System.Build.FilePather: isRelative' :: FilePather (a -> Bool)
- System.Build.FilePather: isUnknown :: (Applicative f) => f (FileType -> Bool)
- System.Build.FilePather: isValid :: FilePather Bool
- System.Build.FilePather: isValid' :: FilePather (a -> Bool)
- System.Build.FilePather: makeValid :: FilePather FilePath
- System.Build.FilePather: makeValid' :: FilePather (a -> FilePath)
- System.Build.FilePather: never :: FilePather Bool
- System.Build.FilePather: never' :: FilePather (a -> Bool)
- System.Build.FilePather: normalise :: FilePather FilePath
- System.Build.FilePather: normalise' :: FilePather (a -> FilePath)
- System.Build.FilePather: not' :: (Functor f) => f Bool -> f Bool
- System.Build.FilePather: splitDirectories :: FilePather [FilePath]
- System.Build.FilePather: splitDirectories' :: FilePather (a -> [FilePath])
- System.Build.FilePather: splitExtension :: FilePather (String, String)
- System.Build.FilePather: splitExtension' :: FilePather (a -> (String, String))
- System.Build.FilePather: type FilterPredicate = FilePather (FileType -> Bool)
- System.Build.FilePather: type RecursePredicate = FilePather Bool
+ System.Build.Args: instance ArgShow String
- System.Build.Args: (-~>) :: (ArgShow k) => String -> Maybe k -> String
+ System.Build.Args: (-~>) :: ArgShow k => String -> Maybe k -> String
- System.Build.Args: (~~>) :: (ArgShow k) => String -> Maybe k -> String
+ System.Build.Args: (~~>) :: ArgShow k => String -> Maybe k -> String
- System.Build.Args: arg :: (ArgShow a) => a -> String
+ System.Build.Args: arg :: ArgShow a => a -> String
- System.Build.Command: command :: (Command c) => c -> IO String
+ System.Build.Command: command :: Command c => c -> IO String
- System.Build.CompilePaths: (=>>) :: (CompilePaths c) => c -> [FilePath] -> String
+ System.Build.CompilePaths: (=>>) :: CompilePaths c => c -> [FilePath] -> String
- System.Build.Directory: archiveDirectories :: [(FilePath, FilePath)] -> RecursePredicate -> FilterPredicate -> [ZipOption] -> IO Archive
+ System.Build.Directory: archiveDirectories :: [(FilePath, FilePath)] -> RecursionPredicate -> FilterPredicate -> [ZipOption] -> IO Archive
- System.Build.Directory: copy :: RecursePredicate -> FilterPredicate -> FilePath -> FilePath -> IO ()
+ System.Build.Directory: copy :: RecursionPredicate -> FilterPredicate -> FilePath -> FilePath -> IO ()
- System.Build.Directory: copyl :: RecursePredicate -> FilterPredicate -> Int -> FilePath -> FilePath -> IO ()
+ System.Build.Directory: copyl :: RecursionPredicate -> FilterPredicate -> Int -> FilePath -> FilePath -> IO ()
- System.Build.Directory: writeArchive :: [(FilePath, FilePath)] -> RecursePredicate -> FilterPredicate -> [ZipOption] -> FilePath -> IO ()
+ System.Build.Directory: writeArchive :: [(FilePath, FilePath)] -> RecursionPredicate -> FilterPredicate -> [ZipOption] -> FilePath -> IO ()
- System.Build.Directory: writeHashArchive :: [(FilePath, FilePath)] -> RecursePredicate -> FilterPredicate -> [ZipOption] -> FilePath -> IO ()
+ System.Build.Directory: writeHashArchive :: [(FilePath, FilePath)] -> RecursionPredicate -> FilterPredicate -> [ZipOption] -> FilePath -> IO ()
- System.Build.Extensions: exts :: (Extensions e) => e -> [String]
+ System.Build.Extensions: exts :: Extensions e => e -> [String]
- System.Build.Extensions: exts' :: (Extensions e) => e -> [String]
+ System.Build.Extensions: exts' :: Extensions e => e -> [String]
- System.Build.OutputDirectory: outdir :: (OutputDirectory o) => o -> Maybe FilePath
+ System.Build.OutputDirectory: outdir :: OutputDirectory o => o -> Maybe FilePath
- System.Build.OutputReferenceGet: getReference :: (OutputReferenceGet r) => r -> [FilePath]
+ System.Build.OutputReferenceGet: getReference :: OutputReferenceGet r => r -> [FilePath]
- System.Build.OutputReferenceSet: setReference :: (OutputReferenceSet r) => [FilePath] -> r -> r
+ System.Build.OutputReferenceSet: setReference :: OutputReferenceSet r => [FilePath] -> r -> r
- System.Build.Runner: (>--) :: (Monad m) => m ExitCode -> m ExitCode -> m ExitCode
+ System.Build.Runner: (>--) :: Monad m => m ExitCode -> m ExitCode -> m ExitCode
- System.Build.Runner: (>==) :: (Monad m) => m ExitCode -> m () -> m ()
+ System.Build.Runner: (>==) :: Monad m => m ExitCode -> m () -> m ()
- System.Build.Runner: pathTransform' :: (Extensions e) => e -> Runner x r -> Runner x r
+ System.Build.Runner: pathTransform' :: Extensions e => e -> Runner x r -> Runner x r

Files

Lastik.cabal view
@@ -1,5 +1,5 @@ Name:               Lastik-Version:            0.6.4+Version:            0.7.0 License:            BSD3 License-File:       LICENSE Author:             Tony Morris <code@tmorris.net>@@ -12,31 +12,38 @@ Build-Type:         Simple  Flag small_base-  Description:     Choose the new, split-up base package.+  Description:      Choose the new, split-up base package.  Library-  if flag(small_base)-    Build-Depends: base < 4 && >= 3, bytestring, directory, filepath, process, zip-archive, pureMD5, SHA, containers-  else-    Build-Depends: base < 3, filepath, process, zip-archive, pureMD5, SHA, containers+  Build-Depends:+                    base < 5 && >= 3,+                    bytestring,+                    directory,+                    filepath,+                    process,+                    zip-archive,+                    pureMD5,+                    SHA,+                    containers,+                    filemanip -  GHC-Options:    -Wall+  GHC-Options:+                    -Wall   Exposed-Modules:-          System.Build,-          System.Build.Directory,-          System.Build.FilePather,-          System.Build.Args,-          System.Build.Runner,-          System.Build.Scala.Access,-          System.Build.Scala.Debug,-          System.Build.Scala.Scalac,-          System.Build.Scala.Scaladoc,-          System.Build.Scala.Target,-          System.Build.Command,-          System.Build.CompilePaths,-          System.Build.Extensions,-          System.Build.OutputDirectory,-          System.Build.OutputReferenceGet,-          System.Build.OutputReferenceSet,-          System.Build.Java.Javac,-          System.Build.Java.Javadoc+                    System.Build,+                    System.Build.Directory,+                    System.Build.Args,+                    System.Build.Runner,+                    System.Build.Scala.Access,+                    System.Build.Scala.Debug,+                    System.Build.Scala.Scalac,+                    System.Build.Scala.Scaladoc,+                    System.Build.Scala.Target,+                    System.Build.Command,+                    System.Build.CompilePaths,+                    System.Build.Extensions,+                    System.Build.OutputDirectory,+                    System.Build.OutputReferenceGet,+                    System.Build.OutputReferenceSet,+                    System.Build.Java.Javac,+                    System.Build.Java.Javadoc
System/Build.hs view
@@ -3,7 +3,6 @@   module System.Build.CompilePaths,   module System.Build.Directory,   module System.Build.Extensions,-  module System.Build.FilePather,   module System.Build.OutputDirectory,   module System.Build.OutputReferenceGet,   module System.Build.OutputReferenceSet,@@ -22,7 +21,6 @@ import System.Build.CompilePaths import System.Build.Directory import System.Build.Extensions-import System.Build.FilePather import System.Build.OutputDirectory import System.Build.OutputReferenceGet import System.Build.OutputReferenceSet
System/Build/Args.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE TypeSynonymInstances #-}  -- | Functions for working with command line arguments and options. module System.Build.Args(@@ -20,7 +20,6 @@                         ) where  import Control.Monad-import Data.Maybe import Data.List import qualified Data.Map as M import System.Environment@@ -29,7 +28,7 @@ class ArgShow a where   arg :: a -> String -instance ArgShow [Char] where+instance ArgShow String where   arg = id  instance ArgShow Int where
System/Build/Directory.hs view
@@ -17,7 +17,7 @@  import System.Directory import System.FilePath-import System.Build.FilePather+import System.FilePath.Find import Codec.Archive.Zip import qualified Data.ByteString.Lazy as B import Control.Monad@@ -42,7 +42,7 @@ rmdir d = doesDirectoryExist d >>= flip when (removeDirectoryRecursive d)  -- | Copy the contents of a directory to another, perhaps trimming parent directories.-copy :: RecursePredicate -- ^ The recursion predicate to search for files in the source directory.+copy :: RecursionPredicate -- ^ The recursion predicate to search for files in the source directory.         -> FilterPredicate -- ^ The filter predicate to search for files in the source directory.         -> FilePath        -- ^ The source directory.         -> FilePath        -- ^ The target directory.@@ -64,7 +64,7 @@                                   else error (from ++ " is not a directory")  -- | Copy the contents of a directory to another, perhaps trimming parent directories.-copyl :: RecursePredicate -- ^ The recursion predicate to search for files in the source directory.+copyl :: RecursionPredicate -- ^ The recursion predicate to search for files in the source directory.          -> FilterPredicate -- ^ The filter predicate to search for files in the source directory.          -> Int             -- ^ The number of parent directories to drop before copying to the target directory.          -> FilePath        -- ^ The source directory.@@ -77,7 +77,7 @@  -- | Create a zip archive by changing into directories and archiving the contents. archiveDirectories :: [(FilePath, FilePath)] -- ^ A list of base directories to change to and contents of that directory to archive.-                      -> RecursePredicate  -- ^ The recursion predicate to search for files to archive.+                      -> RecursionPredicate  -- ^ The recursion predicate to search for files to archive.                       -> FilterPredicate     -- ^ The filter predicate to search for files to archive.                       -> [ZipOption]         -- ^ The options during the creation of the archive.                       -> IO Archive          -- ^ The constructed archive.@@ -86,7 +86,7 @@  -- | Writes a zip archive to a file. writeArchive :: [(FilePath, FilePath)] -- ^ A list of base directories to change to and contents of that directory to archive.-                -> RecursePredicate  -- ^ The recursion predicate to search for files to archive.+                -> RecursionPredicate  -- ^ The recursion predicate to search for files to archive.                 -> FilterPredicate     -- ^ The filter predicate to search for files to archive.                 -> [ZipOption]         -- ^ The options during the creation of the archive.                 -> FilePath            -- ^ The file to write the archive to.@@ -96,7 +96,7 @@  -- | Writes a zip archive to a file then computes a MD5 and SHA1 hash and writes them to files with @".md5"@ and @".sha1"@ extensions. writeHashArchive :: [(FilePath, FilePath)] -- ^ A list of base directories to change to and contents of that directory to archive.-                    -> RecursePredicate  -- ^ The recursion predicate to search for files to archive.+                    -> RecursionPredicate  -- ^ The recursion predicate to search for files to archive.                     -> FilterPredicate     -- ^ The filter predicate to search for files to archive.                     -> [ZipOption]         -- ^ The options during the creation of the archive.                     -> FilePath            -- ^ The file to write the archive to and the prefix name of the files containing the hashes.
− System/Build/FilePather.hs
@@ -1,386 +0,0 @@--- | Combinators for finding files recursively. The combinators all surround the 'find' function.-module System.Build.FilePather(-                                FilePather,-                                -- * Constructor and unwrapper-                                (<?>),-                                filePather,-                                -- * Values using 'System.FilePath'-                                filePath,-                                always,-                                always',-                                never,-                                never',-                                extension,-                                extension',-                                directory,-                                directory',-                                hasExtension,-                                hasExtension',-                                splitExtension,-                                splitExtension',-                                splitDirectories,-                                splitDirectories',-                                hasTrailingPathSeparator,-                                hasTrailingPathSeparator',-                                fileName,-                                fileName',-                                baseName,-                                baseName',-                                normalise,-                                normalise',-                                makeValid,-                                makeValid',-                                isRelative,-                                isRelative',-                                isAbsolute,-                                isAbsolute',-                                isValid,-                                isValid',-                                -- * Utility-                                not',-                                constant,-                                (==?),-                                (/=?),-                                (==||),-                                (/=||),-                                (==&&),-                                (/=&&),-                                (==>),-                                (===>),-                                (/=>),-                                (/==>),-                                (&&?),-                                (?&&?),-                                (||?),-                                (?||?),-                                -- * Find predicates-                                FileType(..),-                                RecursePredicate,-                                FilterPredicate,-                                isFile,-                                isDirectory,-                                isUnknown,-                                -- * Core function-                                find,-                              ) where--import Prelude hiding (any, all)-import Control.Applicative-import Control.Monad-import Control.Monad.Instances-import Data.Monoid-import Data.Foldable(any, all, Foldable)-import System.FilePath((</>), takeExtension, takeDirectory, takeFileName, takeBaseName)-import System.Directory-import qualified System.FilePath as P---- | A function that takes a 'FilePath' and produces a value.-newtype FilePather a = FilePather {-  (<?>) :: FilePath -> a-}--instance Functor FilePather where-  fmap f (FilePather k) = FilePather (f . k)--instance Applicative FilePather where-  FilePather f <*> FilePather a = FilePather (f <*> a)-  pure = FilePather . const--instance Monad FilePather where-  FilePather f >>= k = FilePather (f >>= (<?>) . k)-  return = pure--instance (Monoid a) => Monoid (FilePather a) where-  mempty = return mempty-  FilePather x `mappend` FilePather y = FilePather (x `mappend` y)---- | Construct a 'FilePather' from the given function-filePather :: (FilePath -> a) ->-              FilePather a-filePather = FilePather---- | A value that runs the identity function.-filePath :: FilePather FilePath-filePath = filePather id---- | A value that always produces the value 'True'.-always :: FilePather Bool-always = filePather (const True)---- | A value using a constant function that produces the value 'True'.-always' :: FilePather (a -> Bool)-always' = constant always---- | A value that always produces the value 'False'.-never :: FilePather Bool-never = filePather (const False)---- | A value that always produces a constant function that produces the value 'False'.-never' :: FilePather (a -> Bool)-never' = constant never---- | A value that produces the extension of the given 'FilePath'.-extension :: FilePather FilePath-extension = filePather takeExtension---- | A value using a constant function that produces the extension of the given 'FilePath'.-extension' :: FilePather (a -> FilePath)-extension' = constant extension---- | A value that produces the directory of the given 'FilePath'.-directory :: FilePather FilePath-directory = filePather takeDirectory---- | A value using a constant function that produces the directory of the given 'FilePath'.-directory' :: FilePather (a -> FilePath)-directory' = constant directory---- | A value that produces a value denoting whether or not the given 'FilePath' has an extension.-hasExtension :: FilePather Bool-hasExtension = filePather P.hasExtension---- | A value using a constant function that produces a value denoting whether or not the given 'FilePath' has an extension.-hasExtension' :: FilePather (a -> Bool)-hasExtension' = constant hasExtension---- | A value that produces a value splitting the given 'FilePath' by its extension.-splitExtension :: FilePather (String, String)-splitExtension = filePather P.splitExtension---- | A value using a constant function that produces a value splitting the given 'FilePath' by its extension.-splitExtension' :: FilePather (a -> (String, String))-splitExtension' = constant splitExtension---- | A value that produces a value splitting the given 'FilePath' into its directories.-splitDirectories :: FilePather [FilePath]-splitDirectories = filePather P.splitDirectories---- | A value using a constant function that produces a value splitting the given 'FilePath' into its directories.-splitDirectories' :: FilePather (a -> [FilePath])-splitDirectories' = constant splitDirectories---- | A value that produces a value denoting whether or not the given 'FilePath' has a trailing path separator.-hasTrailingPathSeparator :: FilePather Bool-hasTrailingPathSeparator = filePather P.hasTrailingPathSeparator---- | A value using a constant function that produces a value denoting whether or not the given 'FilePath' has a trailing path separator.-hasTrailingPathSeparator' :: FilePather (a -> Bool)-hasTrailingPathSeparator' = constant hasTrailingPathSeparator---- | A value that produces the file name of the given 'FilePath'.-fileName :: FilePather FilePath-fileName = filePather takeFileName---- | A value using a constant function that produces the file name of the given 'FilePath'.-fileName' :: FilePather (a -> FilePath)-fileName' = constant fileName---- | A value that produces the base name of the given 'FilePath'.-baseName :: FilePather FilePath-baseName = filePather takeBaseName---- | A value using a constant function that produces the base name of the given 'FilePath'.-baseName' :: FilePather (a -> FilePath)-baseName' = constant baseName---- | A value that normalises the given 'FilePath'.-normalise :: FilePather FilePath-normalise = filePather P.normalise---- | A value using a constant function that normalises the given 'FilePath'.-normalise' :: FilePather (a -> FilePath)-normalise' = constant normalise---- | A value that makes valid the given 'FilePath'.-makeValid :: FilePather FilePath-makeValid = filePather P.makeValid---- | A value using a constant function that makes valid the given 'FilePath'.-makeValid' :: FilePather (a -> FilePath)-makeValid' = constant makeValid---- | A value that produces a value denoting whether or not the given 'FilePath' has is relative.-isRelative :: FilePather Bool-isRelative = filePather P.isRelative---- | A value using a constant function that produces a value denoting whether or not the given 'FilePath' has is relative.-isRelative' :: FilePather (a -> Bool)-isRelative' = constant isRelative---- | A value that produces a value denoting whether or not the given 'FilePath' has is absolute.-isAbsolute :: FilePather Bool-isAbsolute = filePather P.isAbsolute---- | A value using a constant function that produces a value denoting whether or not the given 'FilePath' has is absolute.-isAbsolute' :: FilePather (a -> Bool)-isAbsolute' = constant isAbsolute---- | A value that produces a value denoting whether or not the given 'FilePath' has is valid.-isValid :: FilePather Bool-isValid = filePather P.isValid---- | A value using a constant function that produces a value denoting whether or not the given 'FilePath' has is valid.-isValid' :: FilePather (a -> Bool)-isValid' = constant isValid---- | Inverts the given 'Bool' in a functor.-not' :: (Functor f) =>-        f Bool-        -> f Bool-not' = fmap not---- | Produces a constant function in a functor.-constant :: (Functor f) =>-            f a ->-            f (t -> a)-constant = fmap const---- | Tests for equality in a functor.-(==?) :: (Eq a, Functor f) =>-         f a-         -> a-         -> f Bool-p ==? a = fmap (a ==) p---- | Tests for inequality in a functor.-(/=?) :: (Eq a, Functor f) =>-         f a-         -> a-         -> f Bool-p /=? a = fmap (a /=) p---- | Tests for equality of @any@ values in the given container.-(==||) :: (Eq a, Functor f, Foldable t) =>-          f a ->-          t a ->-          f Bool-p ==|| a = fmap (\x -> any (== x) a) p---- | Tests for inequality of @any@ values in the given container.-(/=||) :: (Eq a, Functor f, Foldable t) =>-          f a ->-          t a ->-          f Bool-p /=|| a = fmap (\x -> any (/= x) a) p---- | Tests for equality of @all@ values in the given container.-(==&&) :: (Eq a, Functor f, Foldable t) =>-          f a ->-          t a ->-          f Bool-p ==&& a = fmap (\x -> all (== x) a) p---- | Tests for inequality of @all@ values in the given container.-(/=&&) :: (Eq a, Functor f, Foldable t) =>-          f a ->-          t a ->-          f Bool-p /=&& a = fmap (\x -> all (/= x) a) p---- | Tests for implication in an applicative functor.-(==>) :: (Applicative f) =>-         f Bool-         -> f Bool-         -> f Bool-(==>) = liftA2 (\p q -> not p || q)---- | Tests for implication in an applicative functor in an applicative functor.-(===>) :: (Applicative f1, Applicative f2) =>-          f1 (f2 Bool)-          -> f1 (f2 Bool)-          -> f1 (f2 Bool)-(===>) = liftA2 (==>)---- | Tests for inverse implication in an applicative functor.-(/=>) :: (Applicative f) =>-         f Bool -         -> f Bool-         -> f Bool-(/=>) = liftA2 (\p q -> not q && p)---- | Tests for inverse implication in an applicative functor in an applicative functor.-(/==>) :: (Applicative f1, Applicative f2) =>-          f1 (f2 Bool)-          -> f1 (f2 Bool)-          -> f1 (f2 Bool)-(/==>) = liftA2 (/=>)---- | Performs conjunction (@AND@) in an applicative functor.-(&&?) :: (Applicative f) =>-         f Bool -         -> f Bool-         -> f Bool-(&&?) = liftA2 (&&)---- | Performs conjunction (@AND@) in an applicative functor in an applicative functor.-(?&&?) :: (Applicative f1, Applicative f2) =>-          f1 (f2 Bool)-          -> f1 (f2 Bool)-          -> f1 (f2 Bool)-(?&&?) = liftA2 (&&?)---- | Performs disjunction (@OR@) in an applicative functor.-(||?) :: (Applicative f) =>-         f Bool-         -> f Bool-         -> f Bool-(||?) = liftA2 (||)---- | Performs disjunction (@OR@) in an applicative functor in an applicative functor.-(?||?) :: (Applicative f1, Applicative f2) =>-          f1 (f2 Bool)-          -> f1 (f2 Bool)-          -> f1 (f2 Bool)-(?||?) = liftA2 (||?)---- | The possible types of a file.-data FileType = File -- ^ The type is a normal file.-                | Directory -- ^ The type is a directory.-                | Unknown -- ^ The type is unknown.-  deriving (Eq, Show)---- | A recurse predicate takes a 'FilePath' and returns whether or not to continue recursing on that file.-type RecursePredicate = FilePather Bool---- | A filter predicate takes a 'FilePath' and a file type and returns whether or not to filter the value.-type FilterPredicate = FilePather (FileType -> Bool)---- | Compares for equivalence to a 'File' in an applicative functor.-isFile :: (Applicative f) => -          f (FileType -> Bool)-isFile = pure (== File)---- | Compares for equivalence to a 'Directory' in an applicative functor.-isDirectory :: (Applicative f) =>-               f (FileType -> Bool)-isDirectory = pure (== Directory)---- | Compares for equivalence to 'Unknown' in an applicative functor.-isUnknown :: (Applicative f) => -             f (FileType -> Bool)-isUnknown = pure (== Unknown)---- | Finds all files using the given recurse predicate and filter predicate in the given file path.-find :: RecursePredicate -- ^ The recurse predicate determines whether to continue recursing on the given file path.-        -> FilterPredicate -- ^ The filter predicate determines whether to keep the current file path.-        -> FilePath -- ^ The file path to begin finding files.-        -> IO [FilePath] -- ^ All files found.-find = find' []-  where-  find' :: FilePath -> RecursePredicate -> FilterPredicate -> FilePath -> IO [FilePath]-  find' k r x p = let z = if null k then p else k </> p-                      z' t = [z | x <?> z $ t]-                      ifM c t f = do c' <- c-                                     t' <- t-                                     f' <- f-                                     return (if c' then t' else f')-                  in ifM (doesFileExist z)-                       (return (z' File)) $-                       do e <- doesDirectoryExist z-                          if e-                            then if r <?> z-                                   then do c <- getDirectoryContents z-                                           t <- fmap join $ forM (filter (`notElem` [".", ".."]) c) (find' k r x . (z </>))-                                           return (z' Directory ++ t)-                                   else return (z' Directory)-                            else return (z' Unknown)
System/Build/Java/Javac.hs view
@@ -43,7 +43,6 @@ import Data.List import Data.Maybe import Control.Arrow-import Control.Monad import System.FilePath import System.Build.CompilePaths import System.Build.Extensions
System/Build/Java/Javadoc.hs view
@@ -69,7 +69,6 @@  import Data.List hiding (group) import Data.Maybe-import Control.Monad import System.FilePath import System.Build.Args import System.Build.CompilePaths
System/Build/Runner.hs view
@@ -25,7 +25,7 @@ import System.Cmd import System.Directory import System.Exit-import System.Build.FilePather+import System.FilePath.Find import System.Build.Extensions import System.Build.Command import System.Build.CompilePaths@@ -72,7 +72,8 @@                   Runner x r pathTransform' = pathTransform . recurse   where-  recurse c p = fmap concat $ find always (constant $ extension ==|| exts' c) `mapM` p+  p ==|| a = fmap (\x -> any (== x) a) p+  recurse c p = fmap concat $ find always (extension ==|| exts' c) `mapM` p  (!!!) :: (Command c, CompilePaths c) =>          RunnerExit c
System/Build/Scala/Scalac.hs view
@@ -47,7 +47,6 @@ import System.Build.OutputReferenceSet import System.Build.OutputReferenceGet import System.Build.Command-import Control.Monad import Data.List import Data.Maybe import System.FilePath