diff --git a/cabal.project b/cabal.project new file mode 100644 index 0000000..be8ae08 --- /dev/null +++ b/cabal.project @@ -0,0 +1 @@ +packages: */* diff --git a/flake.nix b/flake.nix index 9e4d404..8343e1d 100644 --- a/flake.nix +++ b/flake.nix @@ -12,8 +12,9 @@ { overlay = final: prev: { haskellPackages = prev.haskellPackages.override ( old: { - overrides = final.lib.composeExtensions ( old.overrides or (_: _: {})) (f: p: { - reddit-pub = f.callPackage ./. {}; + overrides = final.lib.composeExtensions ( old.overrides or (_: _: {})) (f: p: rec { + reddit-pub = f.callPackage ./reddit_pub {}; + reddit-lib = f.callPackage ./reddit_lib {}; }); } ); }; diff --git a/hie.yaml b/hie.yaml new file mode 100644 index 0000000..f0c7014 --- /dev/null +++ b/hie.yaml @@ -0,0 +1,2 @@ +cradle: + cabal: \ No newline at end of file diff --git a/reddit_lib/CHANGELOG.md b/reddit_lib/CHANGELOG.md new file mode 100644 index 0000000..2acd3d5 --- /dev/null +++ b/reddit_lib/CHANGELOG.md @@ -0,0 +1,5 @@ +# Revision history for reddit-lib + +## 0.1.0.0 -- YYYY-mm-dd + +* First version. Released on an unsuspecting world. diff --git a/reddit_lib/default.nix b/reddit_lib/default.nix new file mode 100644 index 0000000..a10f147 --- /dev/null +++ b/reddit_lib/default.nix @@ -0,0 +1,10 @@ +{ mkDerivation, base, lib }: +mkDerivation { + pname = "reddit-lib"; + version = "0.1.0.0"; + src = ./.; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base ]; + license = "unknown"; + hydraPlatforms = lib.platforms.none; +} diff --git a/reddit_lib/reddit-lib.cabal b/reddit_lib/reddit-lib.cabal new file mode 100644 index 0000000..a8a636c --- /dev/null +++ b/reddit_lib/reddit-lib.cabal @@ -0,0 +1,38 @@ +cabal-version: 3.0 +name: reddit-lib +version: 0.1.0.0 +synopsis: + +-- A longer description of the package. +-- description: +homepage: + +-- A URL where users can report bugs. +-- bug-reports: +license: NONE +author: Mats Rauhala +maintainer: mats.rauhala@iki.fi + +-- A copyright notice. +-- copyright: +category: Web +extra-source-files: CHANGELOG.md + +library + exposed-modules: Reddit.Publish + + -- Modules included in this library but not exported. + -- other-modules: + + -- LANGUAGE extensions used by modules in this package. + -- other-extensions: + build-depends: base ^>=4.15.1.0 + hs-source-dirs: src + default-language: Haskell2010 + +test-suite reddit-lib-test + default-language: Haskell2010 + type: exitcode-stdio-1.0 + hs-source-dirs: test + main-is: MyLibTest.hs + build-depends: base ^>=4.15.1.0 diff --git a/src/Publish.hs b/reddit_lib/src/Reddit/Publish.hs similarity index 89% rename from src/Publish.hs rename to reddit_lib/src/Reddit/Publish.hs index d5383cc..4a8d0ee 100644 --- a/src/Publish.hs +++ b/reddit_lib/src/Reddit/Publish.hs @@ -1,5 +1,5 @@ {-# LANGUAGE DerivingVia #-} -module Publish where +module Reddit.Publish where import Data.Functor.Contravariant import Data.Monoid (Ap(..)) diff --git a/reddit_lib/test/MyLibTest.hs b/reddit_lib/test/MyLibTest.hs new file mode 100644 index 0000000..3e2059e --- /dev/null +++ b/reddit_lib/test/MyLibTest.hs @@ -0,0 +1,4 @@ +module Main (main) where + +main :: IO () +main = putStrLn "Test suite not yet implemented." diff --git a/CHANGELOG.md b/reddit_pub/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to reddit_pub/CHANGELOG.md diff --git a/app/Main.hs b/reddit_pub/app/Main.hs similarity index 100% rename from app/Main.hs rename to reddit_pub/app/Main.hs diff --git a/config.dhall b/reddit_pub/config.dhall similarity index 100% rename from config.dhall rename to reddit_pub/config.dhall diff --git a/default.nix b/reddit_pub/default.nix similarity index 81% rename from default.nix rename to reddit_pub/default.nix index ec705ee..274b82a 100644 --- a/default.nix +++ b/reddit_pub/default.nix @@ -1,6 +1,6 @@ { mkDerivation, aeson, amqp, base, bytestring, containers, dhall , hedgehog, hspec, hspec-hedgehog, lens, lens-aeson, lib, mtl -, pipes, sqlite-simple, text, wreq +, pipes, reddit-lib, sqlite-simple, text, wreq }: mkDerivation { pname = "reddit-pub"; @@ -8,9 +8,10 @@ mkDerivation { src = ./.; isLibrary = true; isExecutable = true; + enableSeparateDataOutput = true; libraryHaskellDepends = [ aeson amqp base bytestring containers dhall lens lens-aeson mtl - pipes sqlite-simple text wreq + pipes reddit-lib sqlite-simple text wreq ]; executableHaskellDepends = [ base ]; testHaskellDepends = [ diff --git a/dhall.nix b/reddit_pub/dhall.nix similarity index 100% rename from dhall.nix rename to reddit_pub/dhall.nix diff --git a/dhall/AMQP/Type.dhall b/reddit_pub/dhall/AMQP/Type.dhall similarity index 100% rename from dhall/AMQP/Type.dhall rename to reddit_pub/dhall/AMQP/Type.dhall diff --git a/dhall/AMQP/default.dhall b/reddit_pub/dhall/AMQP/default.dhall similarity index 100% rename from dhall/AMQP/default.dhall rename to reddit_pub/dhall/AMQP/default.dhall diff --git a/dhall/AMQP/package.dhall b/reddit_pub/dhall/AMQP/package.dhall similarity index 100% rename from dhall/AMQP/package.dhall rename to reddit_pub/dhall/AMQP/package.dhall diff --git a/dhall/Fetcher/Type.dhall b/reddit_pub/dhall/Fetcher/Type.dhall similarity index 100% rename from dhall/Fetcher/Type.dhall rename to reddit_pub/dhall/Fetcher/Type.dhall diff --git a/dhall/Fetcher/default.dhall b/reddit_pub/dhall/Fetcher/default.dhall similarity index 100% rename from dhall/Fetcher/default.dhall rename to reddit_pub/dhall/Fetcher/default.dhall diff --git a/dhall/Fetcher/package.dhall b/reddit_pub/dhall/Fetcher/package.dhall similarity index 100% rename from dhall/Fetcher/package.dhall rename to reddit_pub/dhall/Fetcher/package.dhall diff --git a/dhall/Password/Type.dhall b/reddit_pub/dhall/Password/Type.dhall similarity index 100% rename from dhall/Password/Type.dhall rename to reddit_pub/dhall/Password/Type.dhall diff --git a/dhall/Password/package.dhall b/reddit_pub/dhall/Password/package.dhall similarity index 100% rename from dhall/Password/package.dhall rename to reddit_pub/dhall/Password/package.dhall diff --git a/dhall/Qualifier/Type.dhall b/reddit_pub/dhall/Qualifier/Type.dhall similarity index 100% rename from dhall/Qualifier/Type.dhall rename to reddit_pub/dhall/Qualifier/Type.dhall diff --git a/dhall/Type.dhall b/reddit_pub/dhall/Type.dhall similarity index 100% rename from dhall/Type.dhall rename to reddit_pub/dhall/Type.dhall diff --git a/dhall/default.dhall b/reddit_pub/dhall/default.dhall similarity index 100% rename from dhall/default.dhall rename to reddit_pub/dhall/default.dhall diff --git a/dhall/package.dhall b/reddit_pub/dhall/package.dhall similarity index 100% rename from dhall/package.dhall rename to reddit_pub/dhall/package.dhall diff --git a/reddit-pub.cabal b/reddit_pub/reddit-pub.cabal similarity index 98% rename from reddit-pub.cabal rename to reddit_pub/reddit-pub.cabal index a15a764..fdff7fb 100644 --- a/reddit-pub.cabal +++ b/reddit_pub/reddit-pub.cabal @@ -32,7 +32,6 @@ library Data.Deriving.Aeson Network.Reddit Data.SubReddit - Publish Membership -- Modules included in this library but not exported. @@ -53,6 +52,7 @@ library , pipes , containers , sqlite-simple + , reddit-lib hs-source-dirs: src default-language: Haskell2010 diff --git a/shell.nix b/reddit_pub/shell.nix similarity index 100% rename from shell.nix rename to reddit_pub/shell.nix diff --git a/src/Data/Config.hs b/reddit_pub/src/Data/Config.hs similarity index 100% rename from src/Data/Config.hs rename to reddit_pub/src/Data/Config.hs diff --git a/src/Data/Deriving/Aeson.hs b/reddit_pub/src/Data/Deriving/Aeson.hs similarity index 100% rename from src/Data/Deriving/Aeson.hs rename to reddit_pub/src/Data/Deriving/Aeson.hs diff --git a/src/Data/SubReddit.hs b/reddit_pub/src/Data/SubReddit.hs similarity index 100% rename from src/Data/SubReddit.hs rename to reddit_pub/src/Data/SubReddit.hs diff --git a/src/Membership.hs b/reddit_pub/src/Membership.hs similarity index 100% rename from src/Membership.hs rename to reddit_pub/src/Membership.hs diff --git a/src/MyLib.hs b/reddit_pub/src/MyLib.hs similarity index 99% rename from src/MyLib.hs rename to reddit_pub/src/MyLib.hs index 61fb6c0..a4b29e2 100644 --- a/src/MyLib.hs +++ b/reddit_pub/src/MyLib.hs @@ -43,7 +43,7 @@ import Network.AMQP ) import Network.Reddit (RedditId(RedditId), publishEntries) import Network.Wreq.Session (newSession) -import Publish (Publish(..)) +import Reddit.Publish (Publish(..)) import Text.Printf (printf) import Data.ByteString.Lazy (ByteString) diff --git a/src/Network/Reddit.hs b/reddit_pub/src/Network/Reddit.hs similarity index 98% rename from src/Network/Reddit.hs rename to reddit_pub/src/Network/Reddit.hs index 4c6b4a9..e501d51 100644 --- a/src/Network/Reddit.hs +++ b/reddit_pub/src/Network/Reddit.hs @@ -14,7 +14,7 @@ import Network.Wreq hiding (getWith) import Network.Wreq.Session (Session, getWith) import Pipes (Producer, (>->), for, runEffect) import qualified Pipes.Prelude as P -import Publish +import Reddit.Publish import Data.Maybe (maybeToList) import Control.Monad.Trans (liftIO) import Database.SQLite.Simple.ToField (ToField) diff --git a/reddit_pub/src/RedditPub/Publisher.hs b/reddit_pub/src/RedditPub/Publisher.hs new file mode 100644 index 0000000..e69de29 diff --git a/test/Spec.hs b/reddit_pub/test/Spec.hs similarity index 100% rename from test/Spec.hs rename to reddit_pub/test/Spec.hs