lol

Merge pull request #2718 from bergey/imm

IMM RSS reader and dependencies

+131
+27
pkgs/development/libraries/haskell/imm/default.nix
··· 1 + { cabal, async, caseInsensitive, cond, dataDefault, dyre, feed 2 + , filepath, hslogger, httpConduit, httpTypes, lens, mimeMail 3 + , monadControl, mtl, network, opml, random, resourcet, text 4 + , textIcu, time, timerep, tls, transformers, transformersBase 5 + , utf8String, xdgBasedir, xml 6 + }: 7 + 8 + cabal.mkDerivation (self: { 9 + pname = "imm"; 10 + version = "0.6.0.1"; 11 + sha256 = "11m6937wafl6nic69mbibrjnxib503907y21n9zmsxc8vnjl3pps"; 12 + patches = [ ./latest-feed-http-conduit-tls.patch ]; 13 + isLibrary = true; 14 + isExecutable = true; 15 + buildDepends = [ 16 + async caseInsensitive cond dataDefault dyre feed filepath hslogger 17 + httpConduit httpTypes lens mimeMail monadControl mtl network opml 18 + random resourcet text textIcu time timerep tls transformers 19 + transformersBase utf8String xdgBasedir xml 20 + ]; 21 + meta = { 22 + description = "Retrieve RSS/Atom feeds and write one mail per new item in a maildir"; 23 + license = "unknown"; 24 + platforms = self.ghc.meta.platforms; 25 + maintainers = [ "Daniel Bergey <bergey@teallabs.org>" ]; 26 + }; 27 + })
+73
pkgs/development/libraries/haskell/imm/latest-feed-http-conduit-tls.patch
··· 1 + # HG changeset patch 2 + # User Daniel Bergey <bergey@alum.mit.edu> 3 + # Date 1398284724 0 4 + # Wed Apr 23 20:25:24 2014 +0000 5 + # Node ID 4cc692e7acc4f21ffab9e5572d286495791d22d1 6 + # Parent 31e3ba1aaaf9efdce66e8ef5c192d0f4214150f4 7 + Update for feed-0.3.9.2, http-conduit-2.0, tls-1.2 8 + 9 + diff -r 31e3ba1aaaf9 -r 4cc692e7acc4 Imm/Error.hs 10 + --- a/Imm/Error.hs Sun Jun 16 12:23:40 2013 +0200 11 + +++ b/Imm/Error.hs Wed Apr 23 20:25:24 2014 +0000 12 + @@ -41,7 +41,7 @@ 13 + data ImmError = 14 + OtherError String 15 + | HTTPError HttpException 16 + - | TLSError HandshakeFailed 17 + + | TLSError TLSException 18 + | UnicodeError UnicodeException 19 + | ParseUriError String 20 + | ParseTimeError String 21 + @@ -63,7 +63,7 @@ 22 + "/!\\ Cannot parse date from item: ", 23 + " title: " ++ (show $ getItemTitle item), 24 + " link:" ++ (show $ getItemLink item), 25 + - " publish date:" ++ (show $ getItemPublishDate item), 26 + + " publish date:" ++ (show (getItemPublishDate item :: Maybe (Maybe UTCTime))), 27 + " date:" ++ (show $ getItemDate item)] 28 + show (ParseTimeError raw) = "/!\\ Cannot parse time: " ++ raw 29 + show (ParseFeedError raw) = "/!\\ Cannot parse feed: " ++ raw 30 + diff -r 31e3ba1aaaf9 -r 4cc692e7acc4 Imm/HTTP.hs 31 + --- a/Imm/HTTP.hs Sun Jun 16 12:23:40 2013 +0200 32 + +++ b/Imm/HTTP.hs Wed Apr 23 20:25:24 2014 +0000 33 + @@ -50,13 +50,13 @@ 34 + either throwError return res 35 + 36 + -- | Monad-agnostic version of 'parseUrl' 37 + -parseURL :: (MonadBase IO m, MonadError ImmError m) => String -> m (Request m') 38 + +parseURL :: (MonadBase IO m, MonadError ImmError m) => String -> m Request 39 + parseURL uri = do 40 + result <- io $ (Right <$> parseUrl uri) `catch` (return . Left . HTTPError) 41 + either throwError return result 42 + 43 + -- | Build an HTTP request for given URI 44 + -request :: (MonadBase IO m, MonadError ImmError m) => String -> m (Request a) 45 + +request :: (MonadBase IO m, MonadError ImmError m) => String -> m Request 46 + request uri = do 47 + req <- parseURL uri 48 + return $ req { requestHeaders = [ 49 + diff -r 31e3ba1aaaf9 -r 4cc692e7acc4 imm.cabal 50 + --- a/imm.cabal Sun Jun 16 12:23:40 2013 +0200 51 + +++ b/imm.cabal Wed Apr 23 20:25:24 2014 +0000 52 + @@ -46,10 +46,10 @@ 53 + data-default, 54 + directory, 55 + dyre, 56 + - feed, 57 + + feed == 0.3.9.2, 58 + filepath, 59 + hslogger, 60 + - http-conduit >= 1.9.0, 61 + + http-conduit >= 2.0 && < 2.2, 62 + http-types, 63 + lens, 64 + mime-mail, 65 + @@ -66,7 +66,7 @@ 66 + transformers, 67 + time, 68 + timerep >= 1.0.3, 69 + - tls, 70 + + tls >= 1.2 && < 1.3, 71 + utf8-string, 72 + xdg-basedir, 73 + xml
+13
pkgs/development/libraries/haskell/opml/default.nix
··· 1 + { cabal, xml }: 2 + 3 + cabal.mkDerivation (self: { 4 + pname = "opml"; 5 + version = "0.4"; 6 + sha256 = "1bnr6lkcf2qs7pvrmd8a5xmklcg67l64b776hzclfvxqy1qil29x"; 7 + buildDepends = [ xml ]; 8 + meta = { 9 + description = "Representing and handling OPML subscription information"; 10 + license = self.stdenv.lib.licenses.bsd3; 11 + platforms = self.ghc.meta.platforms; 12 + }; 13 + })
+12
pkgs/development/libraries/haskell/timerep/default.nix
··· 1 + { cabal }: 2 + 3 + cabal.mkDerivation (self: { 4 + pname = "timerep"; 5 + version = "1.0.3"; 6 + sha256 = "14lz8nzfy1j7snvifbwjkk1fjc8wy4jk67xk9n87r25v3cva3x0p"; 7 + meta = { 8 + description = "Parse and display time according to some RFCs (RFC3339, RFC2822)"; 9 + license = self.stdenv.lib.licenses.bsd3; 10 + platforms = self.ghc.meta.platforms; 11 + }; 12 + })
+6
pkgs/top-level/haskell-packages.nix
··· 1205 1205 1206 1206 ieee754 = callPackage ../development/libraries/haskell/ieee754 {}; 1207 1207 1208 + imm = callPackage ../development/libraries/haskell/imm {}; 1209 + 1208 1210 indents = callPackage ../development/libraries/haskell/indents {}; 1209 1211 1210 1212 indexed = callPackage ../development/libraries/haskell/indexed {}; ··· 1589 1591 opensslStreams = callPackage ../development/libraries/haskell/openssl-streams {}; 1590 1592 1591 1593 operational = callPackage ../development/libraries/haskell/operational {}; 1594 + 1595 + opml = callPackage ../development/libraries/haskell/opml {}; 1592 1596 1593 1597 options = callPackage ../development/libraries/haskell/options {}; 1594 1598 ··· 2219 2223 time_1_1_2_4 = callPackage ../development/libraries/haskell/time/1.1.2.4.nix {}; 2220 2224 time_1_4_2 = callPackage ../development/libraries/haskell/time/1.4.2.nix {}; 2221 2225 time = null; # core package since ghc >= 6.12.x 2226 + 2227 + timerep = callPackage ../development/libraries/haskell/timerep {}; 2222 2228 2223 2229 timeparsers = callPackage ../development/libraries/haskell/timeparsers { 2224 2230 convertible = self.convertible_1_0_11_1;