diff --git a/default.nix b/default.nix index c144f2743e25676fc4301c060679d5a193efa5c5..a9c9f7ee8505590246eebe391a96f82af764d702 100644 --- a/default.nix +++ b/default.nix @@ -30,4 +30,5 @@ in name = "PaymentServer"; src = ./.; }; + materialized = ./materialized.paymentserver; } diff --git a/materialized.paymentserver/.stack-to-nix.cache b/materialized.paymentserver/.stack-to-nix.cache new file mode 100644 index 0000000000000000000000000000000000000000..36bb67c302ff191d252370e5991eef7cfd26a26b --- /dev/null +++ b/materialized.paymentserver/.stack-to-nix.cache @@ -0,0 +1 @@ +https://github.com/PrivateStorageio/servant-prometheus.git b9461cbf689b47506b2eee973136706092b74968 . 1gfslw670ri119bnq3szc8b08n504f8cnzs5cgk5qvfwvfmsr1xh servant-prometheus .stack-to-nix.cache.0 diff --git a/materialized.paymentserver/.stack-to-nix.cache.0 b/materialized.paymentserver/.stack-to-nix.cache.0 new file mode 100644 index 0000000000000000000000000000000000000000..efa9d4cd0a6c673b9a57042a542ae7fc13109992 --- /dev/null +++ b/materialized.paymentserver/.stack-to-nix.cache.0 @@ -0,0 +1,80 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "servant-prometheus"; version = "0.2.0.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "Alex Mason <axman6@gmail.com>, Jack Kelly <jack.kelly@data61.csiro.au>"; + author = "Alex Mason <axman6@gmail.com>, Anchor Engineering <engineering@lists.anchor.net.au>, Servant Contributors"; + homepage = ""; + url = ""; + synopsis = "Helpers for using prometheus with servant"; + description = "Helpers for using prometheus with servant. Each endpoint has its own metrics allowing more detailed monitoring than wai-middleware-prometheus allows"; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."prometheus-client" or (errorHandler.buildDepError "prometheus-client")) + (hsPkgs."servant" or (errorHandler.buildDepError "servant")) + (hsPkgs."http-types" or (errorHandler.buildDepError "http-types")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + (hsPkgs."time" or (errorHandler.buildDepError "time")) + (hsPkgs."unordered-containers" or (errorHandler.buildDepError "unordered-containers")) + (hsPkgs."wai" or (errorHandler.buildDepError "wai")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + ]; + buildable = true; + }; + exes = { + "bench" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) + (hsPkgs."servant-prometheus" or (errorHandler.buildDepError "servant-prometheus")) + (hsPkgs."servant-server" or (errorHandler.buildDepError "servant-server")) + (hsPkgs."prometheus-client" or (errorHandler.buildDepError "prometheus-client")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + (hsPkgs."wai" or (errorHandler.buildDepError "wai")) + (hsPkgs."warp" or (errorHandler.buildDepError "warp")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + ]; + buildable = true; + }; + }; + tests = { + "spec" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) + (hsPkgs."servant-prometheus" or (errorHandler.buildDepError "servant-prometheus")) + (hsPkgs."servant-server" or (errorHandler.buildDepError "servant-server")) + (hsPkgs."servant-client" or (errorHandler.buildDepError "servant-client")) + (hsPkgs."servant" or (errorHandler.buildDepError "servant")) + (hsPkgs."prometheus-client" or (errorHandler.buildDepError "prometheus-client")) + (hsPkgs."http-client" or (errorHandler.buildDepError "http-client")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + (hsPkgs."wai" or (errorHandler.buildDepError "wai")) + (hsPkgs."warp" or (errorHandler.buildDepError "warp")) + (hsPkgs."hspec" or (errorHandler.buildDepError "hspec")) + (hsPkgs."unordered-containers" or (errorHandler.buildDepError "unordered-containers")) + (hsPkgs."transformers" or (errorHandler.buildDepError "transformers")) + ]; + buildable = true; + }; + }; + }; + } // rec { + src = (pkgs.lib).mkDefault /nix/store/zvvv6lxnqnva4302265x8wwbyb0mfy56-servant-prometheus-b9461cb; + } diff --git a/materialized.paymentserver/PaymentServer.nix b/materialized.paymentserver/PaymentServer.nix new file mode 100644 index 0000000000000000000000000000000000000000..79c3cf64739a22c96190c538eb1e9385d8dc7de0 --- /dev/null +++ b/materialized.paymentserver/PaymentServer.nix @@ -0,0 +1,128 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "PaymentServer"; version = "0.1.1.0"; }; + license = "Apache-2.0"; + copyright = "2019 Private Storage.io, LLC."; + maintainer = "support@privatestorage.io"; + author = "Jean-Paul Calderone"; + homepage = "https://github.com/privatestorageio/PaymentServer#readme"; + url = ""; + synopsis = "Coordinate entities for the purchase of PrivateStorage.io vouchers."; + description = ""; + buildType = "Simple"; + isLocal = true; + detailLevel = "FullDetails"; + licenseFiles = [ "LICENSE" ]; + dataDir = "."; + dataFiles = []; + extraSrcFiles = [ "README.rst" ]; + extraTmpFiles = []; + extraDocFiles = []; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."optparse-applicative" or (errorHandler.buildDepError "optparse-applicative")) + (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."utf8-string" or (errorHandler.buildDepError "utf8-string")) + (hsPkgs."servant" or (errorHandler.buildDepError "servant")) + (hsPkgs."servant-server" or (errorHandler.buildDepError "servant-server")) + (hsPkgs."http-types" or (errorHandler.buildDepError "http-types")) + (hsPkgs."wai" or (errorHandler.buildDepError "wai")) + (hsPkgs."wai-extra" or (errorHandler.buildDepError "wai-extra")) + (hsPkgs."wai-cors" or (errorHandler.buildDepError "wai-cors")) + (hsPkgs."data-default" or (errorHandler.buildDepError "data-default")) + (hsPkgs."warp" or (errorHandler.buildDepError "warp")) + (hsPkgs."warp-tls" or (errorHandler.buildDepError "warp-tls")) + (hsPkgs."stripe-haskell" or (errorHandler.buildDepError "stripe-haskell")) + (hsPkgs."stripe-core" or (errorHandler.buildDepError "stripe-core")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."cryptonite" or (errorHandler.buildDepError "cryptonite")) + (hsPkgs."sqlite-simple" or (errorHandler.buildDepError "sqlite-simple")) + (hsPkgs."retry" or (errorHandler.buildDepError "retry")) + (hsPkgs."prometheus-client" or (errorHandler.buildDepError "prometheus-client")) + (hsPkgs."servant-prometheus" or (errorHandler.buildDepError "servant-prometheus")) + ]; + pkgconfig = [ + (pkgconfPkgs."libchallenge_bypass_ristretto_ffi" or (errorHandler.pkgConfDepError "libchallenge_bypass_ristretto_ffi")) + ]; + buildable = true; + modules = [ + "PaymentServer/Processors/Stripe" + "PaymentServer/Ristretto" + "PaymentServer/Issuer" + "PaymentServer/Persistence" + "PaymentServer/Redemption" + "PaymentServer/Metrics" + "PaymentServer/Server" + "PaymentServer/Main" + ]; + hsSourceDirs = [ "src" ]; + }; + exes = { + "PaymentServer-exe" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."PaymentServer" or (errorHandler.buildDepError "PaymentServer")) + ]; + buildable = true; + hsSourceDirs = [ "app" ]; + mainPath = [ "Main.hs" ]; + }; + "PaymentServer-generate-key" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + (hsPkgs."PaymentServer" or (errorHandler.buildDepError "PaymentServer")) + ]; + buildable = true; + hsSourceDirs = [ "generate-key" ]; + mainPath = [ "Main.hs" ]; + }; + }; + tests = { + "PaymentServer-tests" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + (hsPkgs."transformers" or (errorHandler.buildDepError "transformers")) + (hsPkgs."raw-strings-qq" or (errorHandler.buildDepError "raw-strings-qq")) + (hsPkgs."time" or (errorHandler.buildDepError "time")) + (hsPkgs."tasty" or (errorHandler.buildDepError "tasty")) + (hsPkgs."tasty-hunit" or (errorHandler.buildDepError "tasty-hunit")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."async" or (errorHandler.buildDepError "async")) + (hsPkgs."sqlite-simple" or (errorHandler.buildDepError "sqlite-simple")) + (hsPkgs."http-types" or (errorHandler.buildDepError "http-types")) + (hsPkgs."wai" or (errorHandler.buildDepError "wai")) + (hsPkgs."wai-extra" or (errorHandler.buildDepError "wai-extra")) + (hsPkgs."warp" or (errorHandler.buildDepError "warp")) + (hsPkgs."http-types" or (errorHandler.buildDepError "http-types")) + (hsPkgs."servant-server" or (errorHandler.buildDepError "servant-server")) + (hsPkgs."prometheus-client" or (errorHandler.buildDepError "prometheus-client")) + (hsPkgs."stripe-core" or (errorHandler.buildDepError "stripe-core")) + (hsPkgs."PaymentServer" or (errorHandler.buildDepError "PaymentServer")) + ]; + buildable = true; + modules = [ "Persistence" "Metrics" "Stripe" "FakeStripe" ]; + hsSourceDirs = [ "test" ]; + mainPath = [ "Spec.hs" ]; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ./.; } \ No newline at end of file diff --git a/materialized.paymentserver/default.nix b/materialized.paymentserver/default.nix new file mode 100644 index 0000000000000000000000000000000000000000..b7dc4236c2e74d4cb38eca2b7a23c22caf38b008 --- /dev/null +++ b/materialized.paymentserver/default.nix @@ -0,0 +1,14 @@ +{ + extras = hackage: + { + packages = { + "stripe-core" = (((hackage.stripe-core)."2.5.0").revisions).default; + "stripe-haskell" = (((hackage.stripe-haskell)."2.5.0").revisions).default; + "stripe-http-client" = (((hackage.stripe-http-client)."2.5.0").revisions).default; + PaymentServer = ./PaymentServer.nix; + servant-prometheus = ./.stack-to-nix.cache.0; + }; + }; + resolver = "lts-14.1"; + modules = [ ({ lib, ... }: { packages = {}; }) { packages = {}; } ]; + } \ No newline at end of file