From a9d77a20008efe82862cc1adbfa7a6d4f09f8ff7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Menou?= <frederic.menou@fretlink.com>
Date: Thu, 8 Dec 2016 10:19:15 +0200
Subject: Release code as open source

---
 release.nix | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 release.nix

(limited to 'release.nix')

diff --git a/release.nix b/release.nix
new file mode 100644
index 0000000..d96b579
--- /dev/null
+++ b/release.nix
@@ -0,0 +1,40 @@
+let
+  haskellNixSrc = builtins.fetchTarball "https://github.com/input-output-hk/haskell.nix/archive/1c2c9cd47f267aacf5472477a9827b18cfe5252a.tar.gz";
+  haskellNix = import haskellNixSrc {};
+  pkgs = import haskellNix.sources.nixpkgs-unstable haskellNix.nixpkgsArgs;
+  nixBundleLib = import ./release-bundle.nix { inherit pkgs; };
+  projectName = "edi-parser";
+  selfPackagesNames = map (v: "${projectName}-${v}") [ "core" "scaffolder" "specification" ];
+  project = pkgs.haskell-nix.project' {
+    src = pkgs.haskell-nix.haskellLib.cleanGit {
+      name = projectName;
+      src = ./.;
+    };
+  };
+  selfPackages = pkgs.lib.genAttrs selfPackagesNames (n: project.hsPkgs.${n});
+  extractComponent = type: pkgs.haskell-nix.haskellLib.collectComponents' type selfPackages;
+  mapRecursive = action: pkgs.lib.mapAttrsRecursiveCond (as: !(as ? "type" && as.type == "derivation"))
+    (n: v: if builtins.isBool v then v else action n v);
+
+  extractDocumentation = mapRecursive (n: v: v.haddock.doc) (extractComponent "library");
+  toEnv = derivations: pkgs.buildEnv {
+    name = "project-env";
+    ignoreCollisions = true;
+    paths = pkgs.lib.collect pkgs.lib.isDerivation derivations;
+  };
+in selfPackages // project // rec {
+  inherit selfPackagesNames;
+  checks = pkgs.haskell-nix.haskellLib.collectChecks' selfPackages;
+  exes = extractComponent "exes";
+  library = extractComponent "library";
+  documentation = extractDocumentation;
+  foreignlibs = extractComponent "foreignlibs";
+  sublibs = extractComponent "sublibs";
+  benchmarks = extractComponent "benchmarks";
+  tests = extractComponent "tests";
+  project-env = toEnv exes;
+  bundled-dist = nixBundleLib.bundled-dist exes;
+  bundled-documentation = nixBundleLib.bundled-documentation documentation;
+  bundled-exes = nixBundleLib.bundled-derivations exes;
+  bundled-project-env = nixBundleLib.tarball exes;
+}
-- 
cgit v1.2.3