diff --git a/CHANGELOG.md b/FeedMonad/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to FeedMonad/CHANGELOG.md diff --git a/FeedMonad.cabal b/FeedMonad/FeedMonad.cabal similarity index 94% rename from FeedMonad.cabal rename to FeedMonad/FeedMonad.cabal index 61831e8..32701e3 100644 --- a/FeedMonad.cabal +++ b/FeedMonad/FeedMonad.cabal @@ -27,6 +27,7 @@ library FeedMonad Data.Entry Middleware + Paths_FeedMonad -- Modules included in this library but not exported. -- other-modules: @@ -45,8 +46,10 @@ library , servant-server , acid-state , safecopy + , xdg-basedir hs-source-dirs: src default-language: Haskell2010 + ghc-options: -Wall executable FeedMonad main-is: Main.hs diff --git a/README.md b/FeedMonad/README.md similarity index 100% rename from README.md rename to FeedMonad/README.md diff --git a/FeedMonad/app/Main.hs b/FeedMonad/app/Main.hs new file mode 100644 index 0000000..9b1ca3c --- /dev/null +++ b/FeedMonad/app/Main.hs @@ -0,0 +1,7 @@ +module Main where + +import FeedMonad (defaultMain, defaultConfig) + +main :: IO () +main = + defaultMain defaultConfig diff --git a/default.nix b/FeedMonad/default.nix similarity index 57% rename from default.nix rename to FeedMonad/default.nix index 78b6d32..434fa64 100644 --- a/default.nix +++ b/FeedMonad/default.nix @@ -1,6 +1,6 @@ -{ mkDerivation, acid-state, base, bytestring, containers +{ mkDerivation, acid-state, base, bytestring, containers, dyre , http-client, http-client-tls, lens, lib, mtl, safecopy, servant -, servant-server, text +, servant-server, text, xdg-basedir }: mkDerivation { pname = "FeedMonad"; @@ -9,8 +9,9 @@ mkDerivation { isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - acid-state base bytestring containers http-client http-client-tls - lens mtl safecopy servant servant-server text + acid-state base bytestring containers dyre http-client + http-client-tls lens mtl safecopy servant servant-server text + xdg-basedir ]; executableHaskellDepends = [ base ]; license = "unknown"; diff --git a/easy-hls-nix.json b/FeedMonad/easy-hls-nix.json similarity index 100% rename from easy-hls-nix.json rename to FeedMonad/easy-hls-nix.json diff --git a/shell.nix b/FeedMonad/shell.nix similarity index 100% rename from shell.nix rename to FeedMonad/shell.nix diff --git a/src/.gitignore b/FeedMonad/src/.gitignore similarity index 100% rename from src/.gitignore rename to FeedMonad/src/.gitignore diff --git a/src/Data/Entry.hs b/FeedMonad/src/Data/Entry.hs similarity index 100% rename from src/Data/Entry.hs rename to FeedMonad/src/Data/Entry.hs diff --git a/src/FeedMonad.hs b/FeedMonad/src/FeedMonad.hs similarity index 71% rename from src/FeedMonad.hs rename to FeedMonad/src/FeedMonad.hs index 92b212a..c3342af 100644 --- a/src/FeedMonad.hs +++ b/FeedMonad/src/FeedMonad.hs @@ -1,12 +1,12 @@ -{-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE OverloadedStrings #-} module FeedMonad where -import Data.Tree (Tree(..), Forest) +import Data.Tree (Forest) import Data.Text (Text) -import Data.ByteString (ByteString) import Data.Entry (URL) import Middleware (Middleware) import Numeric.Natural (Natural) +import Data.Foldable (for_) newtype Minutes = Minutes Natural @@ -23,5 +23,14 @@ data FeedMonad = FeedMonad -- authentication token } +defaultConfig :: FeedMonad +defaultConfig = FeedMonad + { feeds = [] + , filters = id + , refreshTime = Minutes 30 + , secretToken = "i am a secret" + } + defaultMain :: FeedMonad -> IO () -defaultMain _ = pure () +defaultMain f = + print $ feeds f diff --git a/src/Middleware.hs b/FeedMonad/src/Middleware.hs similarity index 100% rename from src/Middleware.hs rename to FeedMonad/src/Middleware.hs diff --git a/src/MyLib.hs b/FeedMonad/src/MyLib.hs similarity index 100% rename from src/MyLib.hs rename to FeedMonad/src/MyLib.hs diff --git a/src/Trace.hs b/FeedMonad/src/Trace.hs similarity index 100% rename from src/Trace.hs rename to FeedMonad/src/Trace.hs diff --git a/FeedMonad/test.nix b/FeedMonad/test.nix new file mode 100644 index 0000000..7d588d0 --- /dev/null +++ b/FeedMonad/test.nix @@ -0,0 +1,4 @@ +with (import {}); + +with haskell.lib; +disableLibraryProfiling (disableExecutableProfiling (dontCheck (haskellPackages.callPackage ./. {}))) diff --git a/app/Main.hs b/app/Main.hs deleted file mode 100644 index 60d904e..0000000 --- a/app/Main.hs +++ /dev/null @@ -1,8 +0,0 @@ -module Main where - -import qualified MyLib (someFunc) - -main :: IO () -main = do - putStrLn "Hello, Haskell!" - MyLib.someFunc