From 62f01119f3afa85d80e63d62d0308e569f480aee Mon Sep 17 00:00:00 2001 From: Daniel Austin Date: Thu, 17 Jul 2014 07:36:46 +0200 Subject: [PATCH] Enable expressions for 'important' parts of the rest framework from Silk.co --- .../libraries/haskell/aeson-utils/default.nix | 13 ++++++++ .../haskell/code-builder/default.nix | 12 +++++++ .../haskell/generic-aeson/default.nix | 18 +++++++++++ .../haskell/hxt-pickle-utils/default.nix | 14 ++++++++ .../libraries/haskell/json-schema/default.nix | 23 +++++++++++++ .../libraries/haskell/multipart/default.nix | 14 ++++++++ .../haskell/regular-xmlpickler/default.nix | 14 ++++++++ .../libraries/haskell/rest-core/default.nix | 24 ++++++++++++++ .../libraries/haskell/rest-gen/default.nix | 26 +++++++++++++++ .../haskell/rest-happstack/default.nix | 13 ++++++++ .../libraries/haskell/rest-snap/default.nix | 18 +++++++++++ .../haskell/rest-stringmap/default.nix | 18 +++++++++++ .../libraries/haskell/rest-types/default.nix | 18 +++++++++++ .../libraries/haskell/rest-wai/default.nix | 18 +++++++++++ .../libraries/haskell/tostring/default.nix | 13 ++++++++ .../libraries/haskell/uri-encode/default.nix | 15 +++++++++ pkgs/top-level/haskell-packages.nix | 32 +++++++++++++++++++ 17 files changed, 303 insertions(+) create mode 100644 pkgs/development/libraries/haskell/aeson-utils/default.nix create mode 100644 pkgs/development/libraries/haskell/code-builder/default.nix create mode 100644 pkgs/development/libraries/haskell/generic-aeson/default.nix create mode 100644 pkgs/development/libraries/haskell/hxt-pickle-utils/default.nix create mode 100644 pkgs/development/libraries/haskell/json-schema/default.nix create mode 100644 pkgs/development/libraries/haskell/multipart/default.nix create mode 100644 pkgs/development/libraries/haskell/regular-xmlpickler/default.nix create mode 100644 pkgs/development/libraries/haskell/rest-core/default.nix create mode 100644 pkgs/development/libraries/haskell/rest-gen/default.nix create mode 100644 pkgs/development/libraries/haskell/rest-happstack/default.nix create mode 100644 pkgs/development/libraries/haskell/rest-snap/default.nix create mode 100644 pkgs/development/libraries/haskell/rest-stringmap/default.nix create mode 100644 pkgs/development/libraries/haskell/rest-types/default.nix create mode 100644 pkgs/development/libraries/haskell/rest-wai/default.nix create mode 100644 pkgs/development/libraries/haskell/tostring/default.nix create mode 100644 pkgs/development/libraries/haskell/uri-encode/default.nix diff --git a/pkgs/development/libraries/haskell/aeson-utils/default.nix b/pkgs/development/libraries/haskell/aeson-utils/default.nix new file mode 100644 index 000000000000..18440e804793 --- /dev/null +++ b/pkgs/development/libraries/haskell/aeson-utils/default.nix @@ -0,0 +1,13 @@ +{ cabal, aeson, attoparsec, scientific, text }: + +cabal.mkDerivation (self: { + pname = "aeson-utils"; + version = "0.2.2.1"; + sha256 = "0sj4kdcxcj2wnf3s109yxq8gghz976hkiqs19bjcp6qkzdf5w6sd"; + buildDepends = [ aeson attoparsec scientific text ]; + meta = { + description = "Utilities for working with Aeson"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/code-builder/default.nix b/pkgs/development/libraries/haskell/code-builder/default.nix new file mode 100644 index 000000000000..30f2429191dd --- /dev/null +++ b/pkgs/development/libraries/haskell/code-builder/default.nix @@ -0,0 +1,12 @@ +{ cabal }: + +cabal.mkDerivation (self: { + pname = "code-builder"; + version = "0.1.3"; + sha256 = "1ax4c19xkszahcxvwc1wa1hrgk6ajck5sbprbplsi1gc9jj4g7jm"; + meta = { + description = "Simple system for generating code"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/generic-aeson/default.nix b/pkgs/development/libraries/haskell/generic-aeson/default.nix new file mode 100644 index 000000000000..61bf200ec3b6 --- /dev/null +++ b/pkgs/development/libraries/haskell/generic-aeson/default.nix @@ -0,0 +1,18 @@ +{ cabal, aeson, attoparsec, genericDeriving, HUnit, mtl, tagged +, text, vector +}: + +cabal.mkDerivation (self: { + pname = "generic-aeson"; + version = "0.1.0.3"; + sha256 = "1svbjgd8g1ljximqb4pph9lvsswgvkj46jkqq8lzmh9ql385g2vp"; + buildDepends = [ + aeson attoparsec genericDeriving mtl tagged text vector + ]; + testDepends = [ aeson attoparsec HUnit ]; + meta = { + description = "Derivation of Aeson instances using GHC generics"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/hxt-pickle-utils/default.nix b/pkgs/development/libraries/haskell/hxt-pickle-utils/default.nix new file mode 100644 index 000000000000..e601bcbbff6a --- /dev/null +++ b/pkgs/development/libraries/haskell/hxt-pickle-utils/default.nix @@ -0,0 +1,14 @@ +{ cabal, hxt, mtl }: + +cabal.mkDerivation (self: { + pname = "hxt-pickle-utils"; + version = "0.1.0.2"; + sha256 = "06v4935lljcyyx4a5v0z4id3fz4v28aghsrzr94k6diibpnwcdz2"; + buildDepends = [ hxt mtl ]; + meta = { + homepage = "https://github.com/silkapp/hxt-pickle-utils"; + description = "Utility functions for using HXT picklers"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/json-schema/default.nix b/pkgs/development/libraries/haskell/json-schema/default.nix new file mode 100644 index 000000000000..133fc7f4a931 --- /dev/null +++ b/pkgs/development/libraries/haskell/json-schema/default.nix @@ -0,0 +1,23 @@ +{ cabal, aeson, attoparsec, genericAeson, genericDeriving, HUnit +, tagged, tasty, tastyHunit, tastyTh, text, time +, unorderedContainers, vector +}: + +cabal.mkDerivation (self: { + pname = "json-schema"; + version = "0.6"; + sha256 = "1rlx6r4ybbgz8q159mxh0hp3l0cc8q4nc1g7yd1ii1z4p9wjmnny"; + buildDepends = [ + aeson genericAeson genericDeriving tagged text time + unorderedContainers vector + ]; + testDepends = [ + aeson attoparsec genericAeson HUnit tagged tasty tastyHunit tastyTh + text + ]; + meta = { + description = "Types and type classes for defining JSON schemas"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/multipart/default.nix b/pkgs/development/libraries/haskell/multipart/default.nix new file mode 100644 index 000000000000..7b24e05eba37 --- /dev/null +++ b/pkgs/development/libraries/haskell/multipart/default.nix @@ -0,0 +1,14 @@ +{ cabal, parsec }: + +cabal.mkDerivation (self: { + pname = "multipart"; + version = "0.1.1"; + sha256 = "12sxi21baq1wsa3z6qrczyk47finw85yiql26l90wxk99smm90pj"; + buildDepends = [ parsec ]; + meta = { + homepage = "http://www.github.com/silkapp/multipart"; + description = "A partial fork of the cgi package exposing the multipart module"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/regular-xmlpickler/default.nix b/pkgs/development/libraries/haskell/regular-xmlpickler/default.nix new file mode 100644 index 000000000000..f6664c6c5085 --- /dev/null +++ b/pkgs/development/libraries/haskell/regular-xmlpickler/default.nix @@ -0,0 +1,14 @@ +{ cabal, hxt, regular, text }: + +cabal.mkDerivation (self: { + pname = "regular-xmlpickler"; + version = "0.2"; + sha256 = "1qjx4xsidnpr2as3m2ir97ap5vc9cw6a0z332g53ifx9gskjli9f"; + buildDepends = [ hxt regular text ]; + meta = { + homepage = "http://github.com/silkapp/regular-xmlpickler"; + description = "Generic generation of HXT XmlPickler instances using Regular"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/rest-core/default.nix b/pkgs/development/libraries/haskell/rest-core/default.nix new file mode 100644 index 000000000000..6c37dda87b93 --- /dev/null +++ b/pkgs/development/libraries/haskell/rest-core/default.nix @@ -0,0 +1,24 @@ +{ cabal, aeson, aesonUtils, either, errors, fclabels, HUnit, hxt +, hxtPickleUtils, jsonSchema, mtl, multipart, random, restStringmap +, restTypes, safe, split, testFramework, testFrameworkHunit, text +, transformers, unorderedContainers, uriEncode, utf8String, uuid +}: + +cabal.mkDerivation (self: { + pname = "rest-core"; + version = "0.31.1"; + sha256 = "1cx1zmy1zr43n9nlrbar828izccpkvrvjkrda03ra9fkcjgd6qy6"; + buildDepends = [ + aeson aesonUtils either errors fclabels hxt hxtPickleUtils + jsonSchema mtl multipart random restStringmap restTypes safe split + text transformers unorderedContainers uriEncode utf8String uuid + ]; + testDepends = [ + HUnit mtl testFramework testFrameworkHunit unorderedContainers + ]; + meta = { + description = "Rest API library"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/rest-gen/default.nix b/pkgs/development/libraries/haskell/rest-gen/default.nix new file mode 100644 index 000000000000..298be78bb202 --- /dev/null +++ b/pkgs/development/libraries/haskell/rest-gen/default.nix @@ -0,0 +1,26 @@ +{ cabal, aeson, blazeHtml, Cabal, codeBuilder, fclabels, filepath +, hashable, haskellSrcExts, hslogger, HStringTemplate, HUnit, hxt +, jsonSchema, restCore, safe, scientific, split, tagged +, testFramework, testFrameworkHunit, text, uniplate +, unorderedContainers, vector +}: + +cabal.mkDerivation (self: { + pname = "rest-gen"; + version = "0.14.2"; + sha256 = "1hmf77hs3pp6lf4glh3lbbwfjr029js185v69bk8ycr1c4ib8nbp"; + buildDepends = [ + aeson blazeHtml Cabal codeBuilder fclabels filepath hashable + haskellSrcExts hslogger HStringTemplate hxt jsonSchema restCore + safe scientific split tagged text uniplate unorderedContainers + vector + ]; + testDepends = [ + haskellSrcExts HUnit restCore testFramework testFrameworkHunit + ]; + meta = { + description = "Documentation and client generation from rest definition"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/rest-happstack/default.nix b/pkgs/development/libraries/haskell/rest-happstack/default.nix new file mode 100644 index 000000000000..3ce2186b423c --- /dev/null +++ b/pkgs/development/libraries/haskell/rest-happstack/default.nix @@ -0,0 +1,13 @@ +{ cabal, happstackServer, mtl, restCore, restGen, utf8String }: + +cabal.mkDerivation (self: { + pname = "rest-happstack"; + version = "0.2.10"; + sha256 = "1np8y0v6jnk2lw0aqlzb9dn1vlk8cg75xrhkjmm6qh0z90fy3p6z"; + buildDepends = [ happstackServer mtl restCore restGen utf8String ]; + meta = { + description = "Rest driver for Happstack"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/rest-snap/default.nix b/pkgs/development/libraries/haskell/rest-snap/default.nix new file mode 100644 index 000000000000..b3f052c160f6 --- /dev/null +++ b/pkgs/development/libraries/haskell/rest-snap/default.nix @@ -0,0 +1,18 @@ +{ cabal, caseInsensitive, restCore, safe, snapCore +, unorderedContainers, uriEncode, utf8String +}: + +cabal.mkDerivation (self: { + pname = "rest-snap"; + version = "0.1.17.12"; + sha256 = "0hhpscdbph34psfn2h1g0znds0cz7ja9byr6bg7jmj0h86plz8al"; + buildDepends = [ + caseInsensitive restCore safe snapCore unorderedContainers + uriEncode utf8String + ]; + meta = { + description = "Rest driver for Snap"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/rest-stringmap/default.nix b/pkgs/development/libraries/haskell/rest-stringmap/default.nix new file mode 100644 index 000000000000..a21b0439f288 --- /dev/null +++ b/pkgs/development/libraries/haskell/rest-stringmap/default.nix @@ -0,0 +1,18 @@ +{ cabal, aeson, hashable, hxt, jsonSchema, tagged, text, tostring +, unorderedContainers +}: + +cabal.mkDerivation (self: { + pname = "rest-stringmap"; + version = "0.2.0.2"; + sha256 = "0nzkc09679c2mz3amh1avk2kfjpqbhbxsr0r9zvgcs71gqkal2mz"; + buildDepends = [ + aeson hashable hxt jsonSchema tagged text tostring + unorderedContainers + ]; + meta = { + description = "Maps with stringy keys that can be transcoded to JSON and XML"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/rest-types/default.nix b/pkgs/development/libraries/haskell/rest-types/default.nix new file mode 100644 index 000000000000..37d38029b8ff --- /dev/null +++ b/pkgs/development/libraries/haskell/rest-types/default.nix @@ -0,0 +1,18 @@ +{ cabal, aeson, genericAeson, hxt, jsonSchema, mtl, regular +, regularXmlpickler, restStringmap, text, uuid +}: + +cabal.mkDerivation (self: { + pname = "rest-types"; + version = "1.10.1"; + sha256 = "0i4y1s35ybly1nayqj9c2zqwikpxnzjamq24qbhg0lpqr0dpc1rg"; + buildDepends = [ + aeson genericAeson hxt jsonSchema mtl regular regularXmlpickler + restStringmap text uuid + ]; + meta = { + description = "Silk Rest Framework Types"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/rest-wai/default.nix b/pkgs/development/libraries/haskell/rest-wai/default.nix new file mode 100644 index 000000000000..25860327f2d0 --- /dev/null +++ b/pkgs/development/libraries/haskell/rest-wai/default.nix @@ -0,0 +1,18 @@ +{ cabal, caseInsensitive, httpTypes, mimeTypes, mtl, restCore +, restTypes, text, unorderedContainers, utf8String, wai +}: + +cabal.mkDerivation (self: { + pname = "rest-wai"; + version = "0.1.0.2"; + sha256 = "06wnazy0262b2875q4km2xy9zz7l681vlfj3ny1ha9valnqr3q6w"; + buildDepends = [ + caseInsensitive httpTypes mimeTypes mtl restCore restTypes text + unorderedContainers utf8String wai + ]; + meta = { + description = "Rest driver for WAI applications"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/tostring/default.nix b/pkgs/development/libraries/haskell/tostring/default.nix new file mode 100644 index 000000000000..078c4be92ee3 --- /dev/null +++ b/pkgs/development/libraries/haskell/tostring/default.nix @@ -0,0 +1,13 @@ +{ cabal, text, utf8String }: + +cabal.mkDerivation (self: { + pname = "tostring"; + version = "0.2.0.1"; + sha256 = "1gihls2xslr9fzad2659zv8af9k4cm84888nhx3z9bwasviyg448"; + buildDepends = [ text utf8String ]; + meta = { + description = "The ToString class"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/uri-encode/default.nix b/pkgs/development/libraries/haskell/uri-encode/default.nix new file mode 100644 index 000000000000..0ee3c303a8f3 --- /dev/null +++ b/pkgs/development/libraries/haskell/uri-encode/default.nix @@ -0,0 +1,15 @@ +{ cabal, network, text, utf8String }: + +cabal.mkDerivation (self: { + pname = "uri-encode"; + version = "1.5.0.2"; + sha256 = "1lsj9y3sw9wlpsw7j20frvv9a165mcqx7x7vrp2gamka1120pkym"; + isLibrary = true; + isExecutable = true; + buildDepends = [ network text utf8String ]; + meta = { + description = "Unicode aware uri-encoding"; + license = "unknown"; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index b393d93e4430..fb48fe774e83 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -147,6 +147,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in aesonQq = callPackage ../development/libraries/haskell/aeson-qq {}; + aesonUtils = callPackage ../development/libraries/haskell/aeson-utils {}; + alsaCore = callPackage ../development/libraries/haskell/alsa-core {}; alsaMixer = callPackage ../development/libraries/haskell/alsa-mixer {}; @@ -425,6 +427,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cmdtheline = callPackage ../development/libraries/haskell/cmdtheline {}; + codeBuilder = callPackage ../development/libraries/haskell/code-builder {}; + CodecImageDevIL = callPackage ../development/libraries/haskell/codec-image-devil {}; colorizeHaskell = callPackage ../development/libraries/haskell/colorize-haskell {}; @@ -841,6 +845,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in gdiff = callPackage ../development/libraries/haskell/gdiff {}; + genericAeson = callPackage ../development/libraries/haskell/generic-aeson {}; + genericDeriving = callPackage ../development/libraries/haskell/generic-deriving {}; ghcCore = callPackage ../development/libraries/haskell/ghc-core {}; @@ -1255,6 +1261,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in hxtHttp = callPackage ../development/libraries/haskell/hxt-http {}; + hxtPickleUtils = callPackage ../development/libraries/haskell/hxt-pickle-utils {}; + hxtRegexXmlschema = callPackage ../development/libraries/haskell/hxt-regex-xmlschema {}; hxtTagsoup = callPackage ../development/libraries/haskell/hxt-tagsoup {}; @@ -1338,6 +1346,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in jsonAssertions = callPackage ../development/libraries/haskell/json-assertions {}; + jsonSchema = callPackage ../development/libraries/haskell/json-schema {}; + jsonTypes = callPackage ../development/libraries/haskell/jsonTypes {}; JuicyPixelsUtil = callPackage ../development/libraries/haskell/JuicyPixels-util {}; @@ -1575,6 +1585,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in multimap = callPackage ../development/libraries/haskell/multimap {}; + multipart = callPackage ../development/libraries/haskell/multipart {}; + multiplate = callPackage ../development/libraries/haskell/multiplate {}; multirec = callPackage ../development/libraries/haskell/multirec {}; @@ -1961,6 +1973,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in regular = callPackage ../development/libraries/haskell/regular {}; + regularXmlpickler = callPackage ../development/libraries/haskell/regular-xmlpickler {}; + remote = callPackage ../development/libraries/haskell/remote {}; repa = callPackage ../development/libraries/haskell/repa {}; @@ -1978,6 +1992,20 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in resourcet = callPackage ../development/libraries/haskell/resourcet {}; + restCore = callPackage ../development/libraries/haskell/rest-core {}; + + restGen = callPackage ../development/libraries/haskell/rest-gen {}; + + restHappstack = callPackage ../development/libraries/haskell/rest-happstack {}; + + restSnap = callPackage ../development/libraries/haskell/rest-snap {}; + + restStringmap = callPackage ../development/libraries/haskell/rest-stringmap {}; + + restTypes = callPackage ../development/libraries/haskell/rest-types {}; + + restWai = callPackage ../development/libraries/haskell/rest-wai {}; + retry = callPackage ../development/libraries/haskell/retry {}; rethinkdb = callPackage ../development/libraries/haskell/rethinkdb {}; @@ -2387,6 +2415,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in tls = self.tls_1_1_5; }; + tostring = callPackage ../development/libraries/haskell/tostring {}; + transformers_0_2_2_0 = callPackage ../development/libraries/haskell/transformers/0.2.2.0.nix {}; transformers_0_3_0_0 = callPackage ../development/libraries/haskell/transformers/0.3.0.0.nix {}; transformers_0_4_1_0 = callPackage ../development/libraries/haskell/transformers/0.4.1.0.nix {}; @@ -2459,6 +2489,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in uri = callPackage ../development/libraries/haskell/uri {}; + uriEncode = callPackage ../development/libraries/haskell/uri-encode {}; + url = callPackage ../development/libraries/haskell/url {}; urlencoded = callPackage ../development/libraries/haskell/urlencoded {};