buildwrapper 0.7.2 → 0.7.3
raw patch · 18 files changed
+51/−30 lines, 18 files
Files
- buildwrapper.cabal +1/−1
- src-exe/Language/Haskell/BuildWrapper/CMD.hs +4/−3
- src-exe/Main.hs +0/−1
- src/Language/Haskell/BuildWrapper/API.hs +0/−1
- src/Language/Haskell/BuildWrapper/Base.hs +23/−10
- src/Language/Haskell/BuildWrapper/Cabal.hs +0/−1
- src/Language/Haskell/BuildWrapper/GHC.hs +1/−2
- src/Language/Haskell/BuildWrapper/GHCStorage.hs +0/−1
- src/Language/Haskell/BuildWrapper/Packages.hs +1/−2
- src/Language/Haskell/BuildWrapper/Src.hs +0/−1
- test/Language/Haskell/BuildWrapper/APITest.hs +0/−1
- test/Language/Haskell/BuildWrapper/CMDLongRunningTests.hs +0/−1
- test/Language/Haskell/BuildWrapper/CMDTests.hs +0/−1
- test/Language/Haskell/BuildWrapper/CabalDevTests.hs +10/−0
- test/Language/Haskell/BuildWrapper/GHCTests.hs +0/−1
- test/Language/Haskell/BuildWrapper/ImportsTests.hs +0/−1
- test/Language/Haskell/BuildWrapper/UsagesTests.hs +10/−0
- test/Main.hs +1/−2
buildwrapper.cabal view
@@ -1,5 +1,5 @@ name: buildwrapper-version: 0.7.2+version: 0.7.3 cabal-version: >= 1.8 build-type: Simple license: BSD3
src-exe/Language/Haskell/BuildWrapper/CMD.hs view
@@ -1,7 +1,6 @@-{-# LANGUAGE DeriveDataTypeable,OverloadedStrings, NamedFieldPuns #-} +{-# LANGUAGE DeriveDataTypeable,OverloadedStrings, NamedFieldPuns, CPP #-} -- | -- Module : Language.Haskell.BuildWrapper.CMD --- Author : JP Moresmau -- Copyright : (c) JP Moresmau 2011 -- License : BSD3 -- @@ -25,7 +24,9 @@ import qualified Data.ByteString.Lazy.Char8 as BSC import Data.Version (showVersion) import Control.Exception.Base (catch, IOException)- +#if __GLASGOW_HASKELL__ < 706 +import Prelude hiding (catch) +#endif type CabalFile = FilePath type CabalPath = FilePath
src-exe/Main.hs view
@@ -1,6 +1,5 @@ -- | -- Module : Main--- Author : JP Moresmau -- Copyright : (c) JP Moresmau 2011 -- License : BSD3 --
src/Language/Haskell/BuildWrapper/API.hs view
@@ -1,7 +1,6 @@ {-# LANGUAGE CPP, ScopedTypeVariables, OverloadedStrings, PatternGuards #-} -- | -- Module : Language.Haskell.BuildWrapper.API --- Author : JP Moresmau -- Copyright : (c) JP Moresmau 2011 -- License : BSD3 --
src/Language/Haskell/BuildWrapper/Base.hs view
@@ -1,7 +1,5 @@ {-# LANGUAGE DeriveDataTypeable,OverloadedStrings,PatternGuards, NamedFieldPuns #-} --- | --- Module : Language.Haskell.BuildWrapper.GHC --- Author : JP Moresmau +-- | Module : Language.Haskell.BuildWrapper.Base -- Copyright : (c) JP Moresmau 2011 -- License : BSD3 -- @@ -58,7 +56,8 @@ instance FromJSON BWNoteStatus where parseJSON (String t) =return $ readObj "BWNoteStatus" $ T.unpack $ T.append "BW" t parseJSON _= mzero - + +-- | read an object from a String, with a given error message if it fails readObj :: Read a=> String -> String -> a readObj msg s=let parses=reads s -- :: [(a,String)] in if null parses @@ -75,6 +74,7 @@ } deriving (Show,Read,Eq) +-- | build an empty span in a given file at a given location mkEmptySpan :: FilePath -> Int -> Int -> BWLocation mkEmptySpan src line col = BWLocation src line col line col @@ -97,7 +97,8 @@ ,bwnLocation :: BWLocation -- ^ where the note is } deriving (Show,Read,Eq) - + +-- | is a note an error? isBWNoteError :: BWNote -> Bool isBWNoteError bw=bwnStatus bw == BWError @@ -181,9 +182,11 @@ } deriving (Show,Read,Eq,Ord) +-- | do spans overlap? ifsOverlap :: InFileSpan -> InFileSpan -> Bool ifsOverlap ifs1 ifs2 = iflOverlap ifs1 $ ifsStart ifs2 +-- | does span overlap location? iflOverlap :: InFileSpan -> InFileLoc -> Bool iflOverlap ifs1 ifs2 =let l11=iflLine $ ifsStart ifs1 @@ -235,7 +238,7 @@ -> InFileSpan mkFileSpan sr sc er ec=InFileSpan (InFileLoc sr sc) (InFileLoc er ec) - +-- | definition of a name data NameDef = NameDef { ndName :: T.Text -- ^ name , ndType :: [OutlineDefType] -- ^ types: can have several to combine @@ -425,6 +428,7 @@ v .:? "c" parseJSON _= mzero +-- | information about the thing at a given point in the source data ThingAtPoint = ThingAtPoint { tapName :: String, tapModule :: Maybe String, @@ -507,6 +511,7 @@ else return Nothing else return Nothing +-- | is the source file more recent than the target file? isSourceMoreRecent :: FilePath -> FilePath -> IO Bool isSourceMoreRecent fullSrc fullTgt=do ex<-doesFileExist fullTgt @@ -556,6 +561,7 @@ | otherwise = mzero parseJSON _= mzero +-- | get the cabal component name cabalComponentName :: CabalComponent -> String cabalComponentName CCLibrary{}="" cabalComponentName CCExecutable{ccExeName}=ccExeName @@ -603,6 +609,7 @@ -- f _ m=return m -- parseJSON _= mzero +-- | import clean operation: the span of text to change, the new text data ImportClean = ImportClean { icSpan :: InFileSpan, icText :: T.Text @@ -618,6 +625,7 @@ v .: "t" parseJSON _=mzero +-- | information about files to load (single file or multiple files) data LoadContents = SingleFile { lmFile :: FilePath ,lmModule :: String @@ -626,11 +634,12 @@ lmFiles :: [(FilePath,String)] } +-- | get files to load getLoadFiles :: LoadContents -> [(FilePath,String)] getLoadFiles SingleFile{lmFile=f,lmModule=m}=[(f,m)] getLoadFiles MultipleFile{lmFiles=fs}=fs --- | http://book.realworldhaskell.org/read/io-case-study-a-library-for-searching-the-filesystem.html +-- | <http://book.realworldhaskell.org/read/io-case-study-a-library-for-searching-the-filesystem.html> getRecursiveContents :: FilePath -> IO [FilePath] getRecursiveContents topdir = do ex<-doesDirectoryExist topdir @@ -647,7 +656,7 @@ return (concat paths) else return [] --- | http://book.realworldhaskell.org/read/io-case-study-a-library-for-searching-the-filesystem.html +-- | <http://book.realworldhaskell.org/read/io-case-study-a-library-for-searching-the-filesystem.html> getRecursiveContentsHidden :: FilePath -> IO [FilePath] getRecursiveContentsHidden topdir = do ex<-doesDirectoryExist topdir @@ -690,11 +699,13 @@ removeFile (tmp </> f) return $ Just rel +-- | delete all temporary files deleteTemp :: BuildWrapper() deleteTemp = do temp<-getFullTempDir liftIO $ removeDirectoryRecursive temp - + +-- | delete generated files deleteGenerated :: BuildWrapper() deleteGenerated = do temp<-getFullTempDir @@ -753,6 +764,7 @@ } deriving (Show,Eq) +-- | read a string from a file, forcing the read and closing the handle readFile :: FilePath -> IO String -- readFile n=hGetContents =<< openBinaryFile n ReadMode readFile n = do @@ -761,10 +773,11 @@ rnf contents `seq` hClose inFile -- force the whole file to be read, then close http://stackoverflow.com/a/297630/827593 return contents - +-- | write string to file writeFile :: FilePath -> String -> IO () writeFile n s = withBinaryFile n WriteMode (\ h -> hPutStr h s) +-- | perform operation on a binary opened file withBinaryFile :: FilePath -> IOMode -> (Handle -> IO a) -> IO a withBinaryFile n m f = bracket (openBinaryFile n m) hClose f
src/Language/Haskell/BuildWrapper/Cabal.hs view
@@ -1,7 +1,6 @@ {-# LANGUAGE PatternGuards,ScopedTypeVariables,CPP #-} -- | -- Module : Language.Haskell.BuildWrapper.Cabal --- Author : JP Moresmau -- Copyright : (c) JP Moresmau 2011 -- License : BSD3 --
src/Language/Haskell/BuildWrapper/GHC.hs view
@@ -2,7 +2,6 @@ {-# OPTIONS_GHC -fno-warn-orphans #-} -- | -- Module : Language.Haskell.BuildWrapper.GHC--- Author : JP Moresmau -- Copyright : (c) JP Moresmau 2011 -- License : BSD3 -- @@ -403,7 +402,7 @@ l<- GMU.liftIO getLine case l of "q"->return ()- -- | eval an expression+ -- eval an expression 'e':' ':expr->do s<-handleSourceError (return . show) (do
src/Language/Haskell/BuildWrapper/GHCStorage.hs view
@@ -1,7 +1,6 @@ {-# LANGUAGE CPP,OverloadedStrings,PatternGuards #-} -- | -- Module : Language.Haskell.BuildWrapper.GHCStorage --- Author : JP Moresmau -- Copyright : (c) JP Moresmau 2012 -- License : BSD3 --
src/Language/Haskell/BuildWrapper/Packages.hs view
@@ -1,16 +1,15 @@ {-# LANGUAGE CPP, ScopedTypeVariables #-} -- | -- Module : Language.Haskell.BuildWrapper.Packages --- Author : Thiago Arrais -- Copyright : (c) Thiago Arrais 2009 -- License : BSD3 --- Url : http://stackoverflow.com/questions/1522104/how-to-programmatically-retrieve-ghc-package-information -- -- Maintainer : jpmoresmau@gmail.com -- Stability : beta -- Portability : portable -- -- Packages from packages databases (global, user). +-- see <http://stackoverflow.com/questions/1522104/how-to-programmatically-retrieve-ghc-package-information> module Language.Haskell.BuildWrapper.Packages ( getPkgInfos ) where import Language.Haskell.BuildWrapper.Base
src/Language/Haskell/BuildWrapper/Src.hs view
@@ -1,7 +1,6 @@ {-# LANGUAGE TypeSynonymInstances,OverloadedStrings #-} -- | -- Module : Language.Haskell.BuildWrapper.Src --- Author : JP Moresmau -- Copyright : (c) JP Moresmau 2011 -- License : BSD3 --
test/Language/Haskell/BuildWrapper/APITest.hs view
@@ -2,7 +2,6 @@ {-# OPTIONS_GHC -F -pgmF htfpp #-} -- | -- Module : Language.Haskell.BuildWrapper.APITest --- Author : JP Moresmau -- Copyright : (c) JP Moresmau 2011 -- License : BSD3 --
test/Language/Haskell/BuildWrapper/CMDLongRunningTests.hs view
@@ -2,7 +2,6 @@ {-# OPTIONS_GHC -F -pgmF htfpp #-} -- | -- Module : Language.Haskell.BuildWrapper.CMDTests--- Author : JP Moresmau -- Copyright : (c) JP Moresmau 2013 -- License : BSD3 --
test/Language/Haskell/BuildWrapper/CMDTests.hs view
@@ -2,7 +2,6 @@ {-# OPTIONS_GHC -F -pgmF htfpp #-} -- | -- Module : Language.Haskell.BuildWrapper.CMDTests--- Author : JP Moresmau -- Copyright : (c) JP Moresmau 2011 -- License : BSD3 --
test/Language/Haskell/BuildWrapper/CabalDevTests.hs view
@@ -1,4 +1,14 @@ {-# OPTIONS_GHC -F -pgmF htfpp #-} +-- | +-- Module : Language.Haskell.BuildWrapper.CabalDevTests +-- Copyright : (c) JP Moresmau 2013 +-- License : BSD3 +-- +-- Maintainer : jpmoresmau@gmail.com +-- Stability : beta +-- Portability : portable +-- +-- Test cabal dev invocations module Language.Haskell.BuildWrapper.CabalDevTests where import Language.Haskell.BuildWrapper.Base hiding (readFile,writeFile)
test/Language/Haskell/BuildWrapper/GHCTests.hs view
@@ -2,7 +2,6 @@ {-# OPTIONS_GHC -F -pgmF htfpp #-} -- | -- Module : Language.Haskell.BuildWrapper.GHCTests --- Author : JP Moresmau -- Copyright : (c) JP Moresmau 2011 -- License : BSD3 --
test/Language/Haskell/BuildWrapper/ImportsTests.hs view
@@ -2,7 +2,6 @@ {-# OPTIONS_GHC -F -pgmF htfpp #-} -- | -- Module : Language.Haskell.BuildWrapper.ImportsTests --- Author : JP Moresmau -- Copyright : (c) JP Moresmau 2013 -- License : BSD3 --
test/Language/Haskell/BuildWrapper/UsagesTests.hs view
@@ -1,5 +1,15 @@ {-# LANGUAGE CPP,OverloadedStrings,PatternGuards #-} {-# OPTIONS_GHC -F -pgmF htfpp #-} +-- | +-- Module : Language.Haskell.BuildWrapper.UsagesTests +-- Copyright : (c) JP Moresmau 2013 +-- License : BSD3 +-- +-- Maintainer : jpmoresmau@gmail.com +-- Stability : beta +-- Portability : portable +-- +-- Test usage generation module Language.Haskell.BuildWrapper.UsagesTests where import Language.Haskell.BuildWrapper.Base hiding (readFile,writeFile)
test/Main.hs view
@@ -1,7 +1,6 @@ {-# OPTIONS_GHC -F -pgmF htfpp #-} -- |--- Module : Main--- Author : JP Moresmau+-- Module : Mainau -- Copyright : (c) JP Moresmau 2011 -- License : BSD3 --