Compare commits
2 Commits
fixOGImage
...
main
Author | SHA1 | Date |
---|---|---|
Tissevert | e7e44f8c63 | |
Tissevert | 7a9c1a65c2 |
|
@ -0,0 +1,27 @@
|
||||||
|
(use-modules (gnu packages haskell-xyz)
|
||||||
|
(gnu packages haskell-web)
|
||||||
|
(guix build-system haskell)
|
||||||
|
(guix download)
|
||||||
|
(guix gexp)
|
||||||
|
(guix git-download)
|
||||||
|
(guix licenses)
|
||||||
|
(guix packages))
|
||||||
|
|
||||||
|
(package
|
||||||
|
(name "ghc-template")
|
||||||
|
(version "0.2.0.10")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (hackage-uri "template" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"10mcnhi2rdflmv79z0359nn5sylifvk9ih38xnjqqby6n4hs7mcg"))))
|
||||||
|
(build-system haskell-build-system)
|
||||||
|
(properties '((upstream-name . "template")))
|
||||||
|
(home-page "http://hackage.haskell.org/package/template")
|
||||||
|
(synopsis "Simple string substitution")
|
||||||
|
(description
|
||||||
|
"Simple string substitution library that supports \\\"$\\\"-based substitution.
|
||||||
|
Meant to be used when Text.Printf or string concatenation would lead to code
|
||||||
|
that is hard to read but when a full blown templating system is overkill.")
|
||||||
|
(license bsd-3))
|
|
@ -0,0 +1,44 @@
|
||||||
|
(use-modules (gnu packages haskell-xyz)
|
||||||
|
(gnu packages haskell-web)
|
||||||
|
(guix build-system haskell)
|
||||||
|
(guix download)
|
||||||
|
(guix gexp)
|
||||||
|
(guix git-download)
|
||||||
|
(guix licenses)
|
||||||
|
(guix packages)
|
||||||
|
(loom packages sjw))
|
||||||
|
|
||||||
|
(let
|
||||||
|
((%source-dir (dirname (current-filename)))
|
||||||
|
(ghc-template (load "ghc-template.scm")))
|
||||||
|
(package
|
||||||
|
(name "hablo")
|
||||||
|
(version "devel")
|
||||||
|
(source
|
||||||
|
(local-file %source-dir
|
||||||
|
#:recursive? #t
|
||||||
|
#:select? (git-predicate %source-dir)))
|
||||||
|
(build-system haskell-build-system)
|
||||||
|
(inputs
|
||||||
|
(list ghc-aeson
|
||||||
|
ghc-attoparsec
|
||||||
|
ghc-lucid
|
||||||
|
ghc-optparse-applicative
|
||||||
|
ghc-parsec
|
||||||
|
ghc-random
|
||||||
|
ghc-sjw
|
||||||
|
ghc-template
|
||||||
|
ghc-xdg-basedir))
|
||||||
|
(native-search-paths
|
||||||
|
(list
|
||||||
|
(search-path-specification (variable "SJW_PATH")
|
||||||
|
(files '("lib/SJW")))))
|
||||||
|
(home-page "https://git.marvid.fr/Tissevert/SJW")
|
||||||
|
(synopsis "The Simple Javascript Wrench")
|
||||||
|
(description
|
||||||
|
"SJW is a very simple tool to pack several JS modules into a single
|
||||||
|
script. It doesn't really do proper compilation work (yet) except
|
||||||
|
resolving the modules dependencies and detecting import loops but it
|
||||||
|
provides each module with an independent execution context in the
|
||||||
|
resulting script.")
|
||||||
|
(license gpl3+)))
|
10
hablo.cabal
10
hablo.cabal
|
@ -50,15 +50,15 @@ library
|
||||||
, Pretty
|
, Pretty
|
||||||
, RSS
|
, RSS
|
||||||
-- other-extensions:
|
-- other-extensions:
|
||||||
build-depends: aeson >= 1.2.0 && < 1.6
|
build-depends: aeson >= 1.2.0 && < 2.1
|
||||||
, base >= 4.9.1 && < 4.15
|
, base >= 4.9.1 && < 4.17
|
||||||
, bytestring >= 0.10.8 && < 0.12
|
, bytestring >= 0.10.8 && < 0.12
|
||||||
, containers >= 0.5.11 && < 0.7
|
, containers >= 0.5.11 && < 0.7
|
||||||
, directory >= 1.3.1 && < 1.4
|
, directory >= 1.3.1 && < 1.4
|
||||||
, filepath >= 1.4.2 && < 1.5
|
, filepath >= 1.4.2 && < 1.5
|
||||||
, lucid >= 2.8.0 && < 2.10
|
, lucid >= 2.8.0 && < 2.12
|
||||||
, mtl >= 2.2.2 && < 2.3
|
, mtl >= 2.2.2 && < 2.3
|
||||||
, optparse-applicative >= 0.14.0 && < 0.17
|
, optparse-applicative >= 0.14.0 && < 0.18
|
||||||
, parsec >= 3.1.13 && < 3.2
|
, parsec >= 3.1.13 && < 3.2
|
||||||
, template >= 0.2.0 && < 0.3
|
, template >= 0.2.0 && < 0.3
|
||||||
, text >= 1.2.3 && < 1.3
|
, text >= 1.2.3 && < 1.3
|
||||||
|
@ -73,7 +73,7 @@ executable hablo
|
||||||
main-is: src/Main.hs
|
main-is: src/Main.hs
|
||||||
other-modules: Paths_hablo
|
other-modules: Paths_hablo
|
||||||
-- other-extensions:
|
-- other-extensions:
|
||||||
build-depends: base >= 4.9.1 && < 4.15
|
build-depends: base
|
||||||
, hablo
|
, hablo
|
||||||
, mtl >= 2.2.2 && < 2.3
|
, mtl >= 2.2.2 && < 2.3
|
||||||
ghc-options: -Wall
|
ghc-options: -Wall
|
||||||
|
|
|
@ -16,7 +16,7 @@ import Data.Text.Encoding (encodeUtf8)
|
||||||
import JSON (exportBlog)
|
import JSON (exportBlog)
|
||||||
import Paths_hablo (getDataDir)
|
import Paths_hablo (getDataDir)
|
||||||
import Pretty ((.$))
|
import Pretty ((.$))
|
||||||
import SJW (compile, source, sourceCode)
|
import SJW (compile, source)
|
||||||
import System.Directory (createDirectoryIfMissing)
|
import System.Directory (createDirectoryIfMissing)
|
||||||
import System.Exit (die)
|
import System.Exit (die)
|
||||||
import System.FilePath ((</>))
|
import System.FilePath ((</>))
|
||||||
|
@ -45,10 +45,11 @@ generateConfig destinationDir = do
|
||||||
generateMain :: FilePath -> IO ()
|
generateMain :: FilePath -> IO ()
|
||||||
generateMain destinationDir = do
|
generateMain destinationDir = do
|
||||||
habloSources <- (</> "js") <$> getDataDir
|
habloSources <- (</> "js") <$> getDataDir
|
||||||
result <- compile $ source [destinationDir, "unitJS", habloSources]
|
compile (source [destinationDir, "unitJS", habloSources])
|
||||||
maybe (die "JS compilation failed\n") output =<< sourceCode result
|
>>= either abort (output . fst)
|
||||||
where
|
where
|
||||||
output = writeFile (destinationDir </> "hablo.js") . fromStrict . encodeUtf8
|
output = writeFile (destinationDir </> "hablo.js") . fromStrict . encodeUtf8
|
||||||
|
abort = die . (<> "JS compilation failed\n")
|
||||||
|
|
||||||
generate :: ReaderT Blog IO ()
|
generate :: ReaderT Blog IO ()
|
||||||
generate = do
|
generate = do
|
||||||
|
|
Loading…
Reference in New Issue