anansi 0.3.2.1 → 0.3.3
raw patch · 5 files changed
+52/−38 lines, 5 filesdep −anansidep ~system-fileiodep ~system-filepath
Dependencies removed: anansi
Dependency ranges changed: system-fileio, system-filepath
Files
- anansi.cabal +37/−22
- lib/Anansi/Parser.hs +6/−6
- lib/Anansi/Tangle.hs +2/−2
- lib/Anansi/Types.hs +1/−1
- src/Main.hs +6/−7
anansi.cabal view
@@ -1,6 +1,5 @@ name: anansi-version: 0.3.2.1-synopsis: Simple literate programming preprocessor+version: 0.3.3 license: GPL-3 license-file: license.txt author: John Millikin@@ -10,28 +9,45 @@ category: Development stability: experimental bug-reports: mailto:jmillikin@gmail.com-homepage: http://john-millikin.com/software/anansi/+homepage: https://john-millikin.com/software/anansi/ tested-with: GHC==6.12.1 +synopsis: Simple literate programming preprocessor+description:+ Anansi is a preprocessor for literate programs, in the model of NoWeb or+ nuweb. Literate programming allows computer code and a human-readable+ document to be generated from the same source. Compared to NoWeb,+ Anansi’s primary benefits are the ability to include separate files,+ and to automatically generate an entire directory tree from a project+ without having to enumerate each output.+ .+ This package is split into a library and an executable. The executable is+ suitable for simple cases, such as generating basic HTML or NoWeb. The+ library is useful for users who would like to write their own output formats+ (called “looms”).+ source-repository head type: bazaar- location: http://john-millikin.com/software/anansi/+ location: https://john-millikin.com/software/anansi/ +source-repository this+ type: bazaar+ location: https://john-millikin.com/branches/anansi/0.3/+ tag: anansi_0.3.3+ library hs-source-dirs: lib-- if true- ghc-options: -Wall+ ghc-options: -Wall build-depends:- base >=4.0 && < 5.0- , parsec >= 3.0 && < 3.2+ base >= 4.0 && < 5.0 , bytestring >= 0.9 && < 0.10- , text >= 0.7 && < 0.12- , monads-tf >= 0.1 && < 0.2 , containers >= 0.1 && < 0.5- , system-filepath >= 0.3 && < 0.4- , system-fileio >= 0.1 && < 0.3+ , monads-tf >= 0.1 && < 0.2+ , parsec >= 3.0 && < 3.2+ , system-filepath >= 0.3.1 && < 0.5+ , system-fileio >= 0.2.1 && < 0.4+ , text >= 0.7 && < 0.12 exposed-modules: Anansi@@ -48,17 +64,16 @@ Anansi.Util executable anansi- hs-source-dirs: src main-is: Main.hs-- if true- ghc-options: -Wall+ hs-source-dirs: lib,src+ ghc-options: -Wall build-depends:- base >=4.0 && < 5.0+ base >= 4.0 && < 5.0 , bytestring >= 0.9 && < 0.10- , text >= 0.7 && < 0.12+ , containers >= 0.1 && < 0.5 , monads-tf >= 0.1 && < 0.2- , system-filepath >= 0.3 && < 0.4- , system-fileio >= 0.1 && < 0.3- , anansi+ , parsec >= 3.0 && < 3.2+ , system-filepath >= 0.3.1 && < 0.5+ , system-fileio >= 0.2.1 && < 0.4+ , text >= 0.7 && < 0.12
lib/Anansi/Parser.hs view
@@ -32,9 +32,9 @@ import qualified Data.Text.Encoding as TE import qualified Data.Text.Lazy as TL import qualified Data.Map as Map-import System.FilePath (FilePath)-import qualified System.FilePath.CurrentOS as FP-import qualified System.File+import Filesystem.Path (FilePath)+import qualified Filesystem.Path.CurrentOS as FP+import qualified Filesystem import Anansi.Types import Anansi.Util @@ -71,7 +71,7 @@ getPosition :: Monad m => P.ParsecT s u m Position getPosition = do pos <- P.getPosition- return $ Position (fromString (P.sourceName pos)) (toInteger (P.sourceLine pos))+ return $ Position (FP.decodeString (P.sourceName pos)) (toInteger (P.sourceLine pos)) parseLines :: P.Parsec String u [Line] parseLines = do@@ -220,9 +220,9 @@ getLines :: FilePath -> IO [Line] getLines path = do- bytes <- System.File.readFile path+ bytes <- Filesystem.readFile path let contents = T.unpack (TE.decodeUtf8 bytes)- case P.parse parseLines (show path) contents of+ case P.parse parseLines (FP.encodeString path) contents of Right x -> return x Left err -> let msg = TL.pack $ "getLines parse failed (internal error): " ++ show err
lib/Anansi/Tangle.hs view
@@ -23,8 +23,8 @@ import Data.String (fromString) import qualified Data.Text.Lazy as TL import qualified Data.Map as Map-import System.FilePath (FilePath)-import qualified System.FilePath.CurrentOS as FP+import Filesystem.Path (FilePath)+import qualified Filesystem.Path.CurrentOS as FP import Anansi.Types import Anansi.Util
lib/Anansi/Types.hs view
@@ -20,7 +20,7 @@ ) where import Prelude hiding (FilePath) import Data.Text.Lazy (Text)-import System.FilePath.CurrentOS (FilePath)+import Filesystem.Path.CurrentOS (FilePath) data Block = BlockText Text
src/Main.hs view
@@ -28,14 +28,13 @@ import qualified Data.ByteString.Lazy as BL import Data.Version (showVersion) +import qualified Filesystem+import Filesystem.Path (FilePath)+import qualified Filesystem.Path.CurrentOS as FP import System.Console.GetOpt-import System.Directory import System.Environment import System.Exit-import System.FilePath (FilePath)-import qualified System.FilePath.CurrentOS as FP import System.IO hiding (withFile, FilePath)-import qualified System.File data Output = Tangle | Weave deriving (Eq)@@ -81,7 +80,7 @@ withFile :: FilePath -> (Handle -> IO a) -> IO a withFile path io = if FP.null path then io stdout- else System.File.withFile path WriteMode io+ else Filesystem.withFile path WriteMode io loomMap :: [(TL.Text, Loom)] loomMap = [(loomName l, l) | l <- looms]@@ -142,9 +141,9 @@ realTangle :: FilePath -> FilePath -> TL.Text -> IO () realTangle root path text = do let fullpath = FP.append root path- createTree (FP.parent fullpath)+ Filesystem.createTree (FP.parent fullpath) let bytes = encodeUtf8 text- System.File.withFile fullpath ReadWriteMode $ \h -> do+ Filesystem.withFile fullpath ReadWriteMode $ \h -> do equal <- fileContentsEqual h bytes unless equal $ do hSetFileSize h 0