a lot of stuff sorry
This commit is contained in:
parent
adfc8b9a82
commit
375c6e833a
9 changed files with 297 additions and 151 deletions
|
@ -1,22 +1,27 @@
|
|||
{-# LANGUAGE CPP, ImplicitParams #-}
|
||||
{-# LANGUAGE CPP, ImplicitParams, TypeApplications #-}
|
||||
module Main (main) where
|
||||
|
||||
import qualified Data.ByteString.Lazy as ByteString
|
||||
import Data.ByteString.Lazy (ByteString)
|
||||
import qualified Data.YAML as YAML
|
||||
import Data.Text.Lazy (Text)
|
||||
import qualified Data.Text.Lazy.IO as Text
|
||||
import System.IO (hPrint, stderr)
|
||||
import System.FilePath (makeRelative)
|
||||
import Control.Monad
|
||||
import Data.ByteString.Lazy (ByteString)
|
||||
import qualified Data.ByteString.Lazy as ByteString
|
||||
import Data.List (intersperse)
|
||||
import Data.Text.Lazy (Text)
|
||||
import Data.Text.Lazy.Builder (toLazyText)
|
||||
import qualified Data.Text.Lazy.IO as Text
|
||||
import qualified Data.YAML as YAML
|
||||
import System.FilePath (makeRelative, takeDirectory)
|
||||
import System.FilePath.Find (find, always, fileName, (==?))
|
||||
import System.IO (hPrint, stderr)
|
||||
|
||||
import Options
|
||||
import SinglePage
|
||||
import Depend
|
||||
import Info (Info)
|
||||
import Options
|
||||
import qualified SinglePage
|
||||
import qualified GalleryPage
|
||||
|
||||
#ifdef PRETTY_VERBOSE
|
||||
import qualified Text.Show.Pretty as PP
|
||||
import qualified Text.PrettyPrint as PP
|
||||
import qualified Text.Show.Pretty as PP
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -40,22 +45,41 @@ main2 :: HasVerbose => ModeOptions -> IO ()
|
|||
main2 (SinglePage {file, nsfw, output}) = do
|
||||
info <- readYAML file
|
||||
printV $ "contents" := info
|
||||
let page = make nsfw info
|
||||
let page = SinglePage.make nsfw info
|
||||
writeOutput output page
|
||||
|
||||
main2 (GalleryPage {}) = do
|
||||
error "surprise! this doesn't exist yet"
|
||||
main2 (GalleryPage {title, files, output, dataDir}) = do
|
||||
infos <- mapM (infoYAML dataDir) files
|
||||
printV $ "infos" := infos
|
||||
let page = GalleryPage.make title infos
|
||||
writeOutput output page
|
||||
|
||||
main2 (DependSingle {file, nsfw, output, prefix, buildDir, dataDir}) = do
|
||||
info <- readYAML file
|
||||
printV $ "contents" := info
|
||||
let path = makeRelative dataDir file
|
||||
printV $ "path" := path
|
||||
let deps = dependSingle path info prefix buildDir nsfw
|
||||
let dir = takeDirectory $ makeRelative dataDir file
|
||||
printV $ "dir" := dir
|
||||
let deps = dependSingle dir info prefix buildDir nsfw
|
||||
writeOutput output deps
|
||||
|
||||
main2 (DependGallery {}) = do
|
||||
error "surprise! this doesn't exist yet"
|
||||
main2 (DependGallery {file, output, buildDir, dataDir, tmpDir, infoName}) = do
|
||||
ginfos <- readYAML @[_] file
|
||||
printV $ "galleries" := ginfos
|
||||
infos <- mapM (infoYAML dataDir) =<<
|
||||
find always (fileName ==? infoName) dataDir
|
||||
printV $ "info files" := infos
|
||||
let dependGallery0 g = dependGallery' g infos buildDir dataDir tmpDir
|
||||
let deps = toLazyText $ mconcat $ intersperse "\n\n\n" $
|
||||
map dependGallery0 ginfos
|
||||
writeOutput output deps
|
||||
|
||||
infoYAML :: FilePath -- ^ data dir
|
||||
-> FilePath -- ^ yaml file
|
||||
-> IO (FilePath, Info) -- relative filename, contents
|
||||
infoYAML dataDir f = do
|
||||
let f' = makeRelative dataDir f
|
||||
info <- readYAML f
|
||||
pure (f', info)
|
||||
|
||||
|
||||
readYAML :: YAML.FromYAML a => FilePath -> IO a
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue