diff --git a/flake.nix b/flake.nix index a8c4ad19ca..9d87effed7 100644 --- a/flake.nix +++ b/flake.nix @@ -12,7 +12,7 @@ outputs = { self, nixpkgs, flake-utils, haskellNix, easy-purescript-nix }: let supportedSystems = [ - # "x86_64-linux" + "x86_64-linux" "x86_64-darwin" ]; in @@ -25,7 +25,7 @@ p // { purs = p.purs-0_15_2; }; scripts = import ./nix/scripts.nix { - inherit pkgs system easyPS; + inherit pkgs easyPS; inherit (pkgs.nodePackages) prettier; }; overlays = [ @@ -49,6 +49,7 @@ ++ (with scripts; [ marlowePlaygroundGeneratePurs + startBackend ] ) ++ @@ -69,10 +70,17 @@ ]; pkgs = import nixpkgs { inherit system overlays; inherit (haskellNix) config; }; flake = pkgs.playground.flake { }; + ghc-with-marlowe = pkgs.playground.ghcWithPackages (ps: [ ps.marlowe ]); in - flake // { - legacyPackages = pkgs; - }); + pkgs.lib.recursiveUpdate + (flake // { + legacyPackages = pkgs; + }) + { + packages = { inherit ghc-with-marlowe; }; + } + + ); # --- Flake Local Nix Configuration ---------------------------- nixConfig = { diff --git a/marlowe-playground-client/default.nix b/marlowe-playground-client/default.nix deleted file mode 100644 index 2f288be707..0000000000 --- a/marlowe-playground-client/default.nix +++ /dev/null @@ -1,94 +0,0 @@ -{ pkgs -, gitignore-nix -, haskell -, webCommon -, webCommonSrc -, webCommonMarlowe -, buildPursPackage -, buildNodeModules -, filterNpm -, purs-tidy -, prettier -, writeShellScriptBinInRepoRoot -}: -let - playground-exe = haskell.packages.marlowe-playground-server.components.exes.marlowe-playground-server; - - build-playground-exe = "$(nix-build ../default.nix -A marlowe.haskell.packages.marlowe-playground-server.components.exes.marlowe-playground-server \"$@\")"; - - build-ghc-with-marlowe = "$(nix-build --quiet --no-build-output -E '(import ./.. {}).marlowe.haskell.project.ghcWithPackages(ps: [ ps.marlowe ])' \"$@\")"; - - # Output containing the purescript bridge code - generated-purescript = pkgs.runCommand "marlowe-playground-purescript" { } '' - mkdir $out - ${playground-exe}/bin/marlowe-playground-server psgenerator $out - cp ${builtins.path { name = "tidyrc.json"; path = ../.tidyrc.json; } } $out/.tidyrc.json - cp ${builtins.path { name = "tidyoperators"; path = ../.tidyoperators; } } $out/.tidyoperators - cd $out - ${purs-tidy}/bin/purs-tidy format-in-place $out - ${prettier}/bin/prettier -w $out - rm $out/.tidyrc.json - rm $out/.tidyoperators - ''; - - generate-purescript = writeShellScriptBinInRepoRoot "marlowe-playground-generate-purs" '' - generated=./marlowe-playground-client/generated - rm -rf $generated - cp -a $(nix-build -A marlowe-playground.generated-purescript --no-out-link "$@") $generated - chmod -R +w $generated - ''; - - # start-backend: script to start the plutus-playground-server - # - # Note-1: We need to add ghc to the path because the server provides /runghc - # which needs ghc and dependencies. - # Note-2: We want to avoid to pull the huge closure in so we use $(nix-build) instead - start-backend = pkgs.writeShellScriptBin "marlowe-playground-server" '' - echo "marlowe-playground-server: for development use only" - GHC_WITH_PKGS=${build-ghc-with-marlowe} - export PATH=$GHC_WITH_PKGS/bin:$PATH - export FRONTEND_URL=https://localhost:8009 - - ${build-playground-exe}/bin/marlowe-playground-server webserver - ''; - - cleanSrc = gitignore-nix.gitignoreSource ./.; - - nodeModules = buildNodeModules { - projectDir = filterNpm cleanSrc; - packageJson = ./package.json; - packageLockJson = ./package-lock.json; - githubSourceHashMap = { - shmish111.nearley-webpack-loader."939360f9d1bafa9019b6ff8739495c6c9101c4a1" = "1brx669dgsryakf7my00m25xdv7a02snbwzhzgc9ylmys4p8c10x"; - ankitrohatgi.tarballjs."64ea5eb78f7fc018a223207e67f4f863fcc5d3c5" = "04r9yap0ka4y3yirg0g7xb63mq7jzc2qbgswbixxj8s60k6zdqsm"; - }; - }; - - build-client = writeShellScriptBinInRepoRoot "marlowe-play-spago" '' - cd marlowe-playground-client - spago build --purs-args "--strict --stash --censor-lib --stash --is-lib=generated --is-lib=.spago" - ''; - - client = pkgs.lib.overrideDerivation - (buildPursPackage { - inherit pkgs nodeModules; - src = cleanSrc; - checkPhase = '' - ${pkgs.nodejs}/bin/npm run test - ''; - name = "marlowe-playground-client"; - extraSrcs = { - web-common-marlowe = webCommonMarlowe; - web-common = webCommonSrc; - }; - spagoPackages = pkgs.callPackage ./spago-packages.nix { }; - }) - (_: { - WEB_COMMON_SRC = webCommon.cleanSrc; - WEB_COMMON_MARLOWE_SRC = webCommonMarlowe; - }); -in -{ - inherit client generated-purescript generate-purescript start-backend build-client; - server = playground-exe; -} diff --git a/marlowe-playground-client/spago-packages.nix b/marlowe-playground-client/spago-packages.nix deleted file mode 100644 index 1437ef859d..0000000000 --- a/marlowe-playground-client/spago-packages.nix +++ /dev/null @@ -1,1654 +0,0 @@ -# This file was generated by Spago2Nix - -{ pkgs ? import {} }: - -let - inputs = { - - "aff" = pkgs.stdenv.mkDerivation { - name = "aff"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-aff.git"; - rev = "2d44d9f9d0d6a416a4103fba2fb39e5160f80e36"; - sha256 = "1d38l16s8hvfqq5w40w21j5089svdiggkraw3rwrl6ml7lijjqx4"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "aff-promise" = pkgs.stdenv.mkDerivation { - name = "aff-promise"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/nwolverson/purescript-aff-promise.git"; - rev = "3aa74e68e3e4c3e38d821375703e0b2f49d831eb"; - sha256 = "10gv3b05dxnlmr9zmigqs1hz4xqrx7da30aqh12kqg3zrg49k9cc"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "affjax" = pkgs.stdenv.mkDerivation { - name = "affjax"; - version = "v13.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-affjax.git"; - rev = "87a8ffce89a476c1425370eb4b2b7e15408e0d1c"; - sha256 = "02hd0pfa1lb06a8qg2mqmkhyn3cz8hbvh6r9h2i6xcfqh0r8jg7s"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "affjax-web" = pkgs.stdenv.mkDerivation { - name = "affjax-web"; - version = "v1.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-affjax-web.git"; - rev = "f53a865f4012e4c8bafdd52c6ba39697df68c9d9"; - sha256 = "0nv43h8w72mr7x469sh3r4qz1zcv7srfyyfar9d00xbdshrvgdnh"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "ansi" = pkgs.stdenv.mkDerivation { - name = "ansi"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/hdgarrood/purescript-ansi.git"; - rev = "7d898732d643a977a78004851112a4417909e126"; - sha256 = "1aml84m5p1s14kj29m39182byg44nf275p4cinx3kgwhv1gj0qcp"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "argonaut" = pkgs.stdenv.mkDerivation { - name = "argonaut"; - version = "v9.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-argonaut.git"; - rev = "7505a47f2edb0c9cacaac4f11dcedf4723a3e9c8"; - sha256 = "18yxhlrwri6q858krz1klyq29fx8nvfm16c04wm2rn91mgyasn6x"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "argonaut-codecs" = pkgs.stdenv.mkDerivation { - name = "argonaut-codecs"; - version = "v9.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-argonaut-codecs.git"; - rev = "176a5dddae28fda9a2ff31ed4bf1efcc148513a4"; - sha256 = "08ys445222syysxh24la8bc8l20lwwqi4vdfa3ph2a60l1lx3kp8"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "argonaut-core" = pkgs.stdenv.mkDerivation { - name = "argonaut-core"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-argonaut-core.git"; - rev = "68da81dd80ec36d3b013eff46dc067a972c22e5d"; - sha256 = "0hxl17ddbflkk0hchjgk5xj6j9fwp3b182w4g073p0dwscdl4f08"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "argonaut-traversals" = pkgs.stdenv.mkDerivation { - name = "argonaut-traversals"; - version = "v10.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-argonaut-traversals.git"; - rev = "8d2403d8d57afb568933dbb36063d5670ce770a0"; - sha256 = "0v965bcl1hdp1hacbzxcm35kxxclixj0kpsdm816gs7m548z6l43"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "arraybuffer-types" = pkgs.stdenv.mkDerivation { - name = "arraybuffer-types"; - version = "v3.0.2"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-arraybuffer-types.git"; - rev = "9b0b7a0f9ee034e039f3d3a2a9c3f74eb7c9264a"; - sha256 = "1q3111jk6jj64bxy86lc7ik6q5mgdz87bc086wj5rm57dmlivlxx"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "arrays" = pkgs.stdenv.mkDerivation { - name = "arrays"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-arrays.git"; - rev = "d20bae2f76db6cf29b7b75e26e82b8a54c32295e"; - sha256 = "1ciz796yrdfnqiskjjhh6r3bn9mks1dm5zin7kwzh1nfy1i4w9pz"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "assert" = pkgs.stdenv.mkDerivation { - name = "assert"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-assert.git"; - rev = "27c0edb57d2ee497eb5fab664f5601c35b613eda"; - sha256 = "02qpcsijil64qq4kcikv2ynxl85zkryvv0vmzjm6752956ymzi0j"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "avar" = pkgs.stdenv.mkDerivation { - name = "avar"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-avar.git"; - rev = "d00f5784d9cc8f079babd62740f5c52b87e5caa5"; - sha256 = "132g0ccmjr8328xpaycww8b5wmx1vi3li4irxxqcjk5wi47i8c9h"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "bifunctors" = pkgs.stdenv.mkDerivation { - name = "bifunctors"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-bifunctors.git"; - rev = "16ba2fb6dd7f05528ebd9e2f9ca3a068b325e5b3"; - sha256 = "1qz5aaiq5w4g1rhjb63z47h6nqhw8hw23x1zw5alam047pq4vfkg"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "bigints" = pkgs.stdenv.mkDerivation { - name = "bigints"; - version = "v7.0.1"; - src = pkgs.fetchgit { - url = "https://github.com/sharkdp/purescript-bigints.git"; - rev = "e73f55b866e437c7bf04c7d262de7c205c47bbca"; - sha256 = "0msh5sv6g0k69fi0qv4xi1g89bfwai099f0ycjb8a69mnjq8x21n"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "catenable-lists" = pkgs.stdenv.mkDerivation { - name = "catenable-lists"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-catenable-lists.git"; - rev = "09abe1f4888bc00841ad2b59e56a9e7ce7ebd4ab"; - sha256 = "0fn6caspdnb0nrlj31sy7d5hxrhndfz7a2b9wfkxf5bv5vpjyawb"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "console" = pkgs.stdenv.mkDerivation { - name = "console"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-console.git"; - rev = "3b83d7b792d03872afeea5e62b4f686ab0f09842"; - sha256 = "0fr5l1myhscp910mybp04cg6g8f2hy3ikjfc8fkqlb2dm2cqzdfs"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "const" = pkgs.stdenv.mkDerivation { - name = "const"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-const.git"; - rev = "ab9570cf2b6e67f7e441178211db1231cfd75c37"; - sha256 = "0mcpwqqf5bcwxlzk53smvsjjz1ymlnq0ypphg6sc83ibw70g64f6"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "contravariant" = pkgs.stdenv.mkDerivation { - name = "contravariant"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-contravariant.git"; - rev = "9ad3e105b8855bcc25f4e0893c784789d05a58de"; - sha256 = "1xkd3rfs8v20w7mj6sj6dmhfb2vb1zpmjv245xj1rahk3g16qm7m"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "control" = pkgs.stdenv.mkDerivation { - name = "control"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-control.git"; - rev = "a6033808790879a17b2729e73747a9ed3fb2264e"; - sha256 = "05sdgywprwpav62d2bvlb80yd39brxhnmhhl1f116mm9hw5clqia"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "coroutines" = pkgs.stdenv.mkDerivation { - name = "coroutines"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-coroutines.git"; - rev = "7aa4174c1a981ad0a43dba1d3efad78d76838f5a"; - sha256 = "0yrycc48901m0vjadh4i4si1crgdjj7w0drmxyqrbv61krc23p8k"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "datetime" = pkgs.stdenv.mkDerivation { - name = "datetime"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-datetime.git"; - rev = "a6a0cf1b0324964ad1854bc3377ed8766ba90e6f"; - sha256 = "1idjljxy8rjlw3wiypk1c9cc1fc4g9kf7drzdy6a0yjdg7504gad"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "datetime-iso" = pkgs.stdenv.mkDerivation { - name = "datetime-iso"; - version = "a5de49e1e4b75d1731b7ec08e07f94eb6985d452"; - src = pkgs.fetchgit { - url = "https://github.com/input-output-hk/purescript-datetime-iso"; - rev = "a5de49e1e4b75d1731b7ec08e07f94eb6985d452"; - sha256 = "0c7hjas2f1iva6z0j7lxn4arpqr4dfi2brndqr1k1wy4gq5zl7nc"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "decimals" = pkgs.stdenv.mkDerivation { - name = "decimals"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/sharkdp/purescript-decimals.git"; - rev = "dfee90a706c44b41b0ef8f5b26d4633323942937"; - sha256 = "0s64bahw64lc7izhfq42s1imii3fkav8h6v9v4v8ma60g8agqiba"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "distributive" = pkgs.stdenv.mkDerivation { - name = "distributive"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-distributive.git"; - rev = "6005e513642e855ebf6f884d24a35c2803ca252a"; - sha256 = "0x6cfsx9ff66kvw9l10pxd5vv16r91mmfxrfc68w1xfdfi81lhdx"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "dom-indexed" = pkgs.stdenv.mkDerivation { - name = "dom-indexed"; - version = "v11.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-halogen/purescript-dom-indexed.git"; - rev = "b462b7391f89cda71d8559cc6f0a49755fae6a99"; - sha256 = "18h6dafjr6lpcxv69fapyvhghkxkij5fy06m2ybyxj1dj9fh1hmf"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "effect" = pkgs.stdenv.mkDerivation { - name = "effect"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-effect.git"; - rev = "a192ddb923027d426d6ea3d8deb030c9aa7c7dda"; - sha256 = "0aa10lc6h9mlf4xf3g3ziig7v6kxdqvbh20kma8ay59w0b1bhmj1"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "either" = pkgs.stdenv.mkDerivation { - name = "either"; - version = "v6.1.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-either.git"; - rev = "af655a04ed2fd694b6688af39ee20d7907ad0763"; - sha256 = "05zps4klvgmvlm06f4hrycssm8q0pysbqnjsrk26lfvmid6mmg63"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "enums" = pkgs.stdenv.mkDerivation { - name = "enums"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-enums.git"; - rev = "bae47961d401f9acf88da38f32e87403e5f0cf2f"; - sha256 = "08sl5q07hv6v2008dcpg4mxiqwk9z0fhq67k0bgkxvlbsmar7khg"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "exceptions" = pkgs.stdenv.mkDerivation { - name = "exceptions"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-exceptions.git"; - rev = "afab3c07c820bb49b6c5be50049db46a964a6161"; - sha256 = "04xrbrcjwsv8gj465ygrlqhv1majxmr6m242iazg6apxlr89hgvg"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "exists" = pkgs.stdenv.mkDerivation { - name = "exists"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-exists.git"; - rev = "f765b4ace7869c27b9c05949e18c843881f9173b"; - sha256 = "0xnxi8fsmi15wrpq5d99gg94glk8a45hpx7pf4pmxg5r6rn1vjvx"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "filterable" = pkgs.stdenv.mkDerivation { - name = "filterable"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-filterable.git"; - rev = "7c5b8c72779997f2b17d12ce478ff81e7ddda285"; - sha256 = "1mx4pm8ij1f1vlpw4wrs8gxrw7y6sr9mq5cx1wfx4ks9gs3v765l"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "fixed-points" = pkgs.stdenv.mkDerivation { - name = "fixed-points"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-fixed-points.git"; - rev = "2b7f480038a15c707adf49178181cefed167afb2"; - sha256 = "1iib0yxl749lg4m7ysqmb9aby67a9829x38xc2rma5fk9fv30cw7"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "foldable-traversable" = pkgs.stdenv.mkDerivation { - name = "foldable-traversable"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-foldable-traversable.git"; - rev = "b3926f870532d287ea59e2d5cd3873b81ef2a93a"; - sha256 = "0xg8qvyc6r9wqgy7wnw1rjqljl4wpgdrkxsm5x9rsagj2k5brxip"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "foreign" = pkgs.stdenv.mkDerivation { - name = "foreign"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-foreign.git"; - rev = "2dd222d1ec7363fa0a0a7adb0d8eaf81bb7006dd"; - sha256 = "0ycjaal8b2rsg3zl3b7acv166vjfdvziiza3fs8nhfw0rx0xmm1m"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "foreign-object" = pkgs.stdenv.mkDerivation { - name = "foreign-object"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-foreign-object.git"; - rev = "28a635827a9a6c251df73f68874070d51fe9f756"; - sha256 = "0ql0vgndcb5dqaqz81mvrqkrl5c2rlgxpydgdiiaxmmfxvxwi439"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "fork" = pkgs.stdenv.mkDerivation { - name = "fork"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-fork.git"; - rev = "a5c3bc6f357e97669e8c29c6f79f5f55be0d42c0"; - sha256 = "0yzh55vfrhrr660ni3sbbljypjirbka5jlks4zibqmhwrmy3wnj9"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "form-urlencoded" = pkgs.stdenv.mkDerivation { - name = "form-urlencoded"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-form-urlencoded.git"; - rev = "e0e3eebc76f62f2594a0e823e8d6241ca00b2459"; - sha256 = "1ay946w7gkgqrxxv5qf28w83mh59r1q4j8kk6pndhripz9pby68w"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "formatters" = pkgs.stdenv.mkDerivation { - name = "formatters"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-formatters.git"; - rev = "0b4deda4c6664209173e3e21b8fcbc6151a4549c"; - sha256 = "0z3w5qbfd8z8bakir3rwanq6dcf554f3apacxw5l2vxscvikyra3"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "free" = pkgs.stdenv.mkDerivation { - name = "free"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-free.git"; - rev = "e2d8fa8023a864363857834e11393483bced5e38"; - sha256 = "0gyy0k297m26gw76w7kx8k1zjczlqbqb3nmh2h4gb3r84gl05g6r"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "freeap" = pkgs.stdenv.mkDerivation { - name = "freeap"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/ethul/purescript-freeap.git"; - rev = "b45a39b085777010818a87bf2ed6e7e430215c97"; - sha256 = "1kksw5fhiczbkd702d3kpy5l9i8q8is60xw51kk9rk9vbc8s1cwl"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "freet" = pkgs.stdenv.mkDerivation { - name = "freet"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-freet.git"; - rev = "21be6fba22599a25812430dda6ba2ca8135920a1"; - sha256 = "006wbr7f19k7vs1jg4wgkwyx1q4wvvs2wqscfcxsp8fzfpn2yqw8"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "functions" = pkgs.stdenv.mkDerivation { - name = "functions"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-functions.git"; - rev = "f626f20580483977c5b27a01aac6471e28aff367"; - sha256 = "1bsf2y8hx103a92yrc6m05q2dv51ckag1srd7q5n9vaf2k9byrj9"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "functors" = pkgs.stdenv.mkDerivation { - name = "functors"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-functors.git"; - rev = "022ffd7a2a7ec12080314f3d217b400674a247b4"; - sha256 = "1pnw3r1nk0rx8mrw3ajjml40zvx9v26qrqwj77pz7hpwxigxfbff"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "gen" = pkgs.stdenv.mkDerivation { - name = "gen"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-gen.git"; - rev = "9fbcc2a1261c32e30d79c5418edef4d96fe76931"; - sha256 = "0kajzcp9a8dmqvb3ga27hlf18m2smbp98a0bmzzb9vv156ckw0b4"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "halogen" = pkgs.stdenv.mkDerivation { - name = "halogen"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-halogen/purescript-halogen.git"; - rev = "222e1febc889c64a71013748b6bf04db969888f9"; - sha256 = "1y0jxnyav8wv49zwmimfbcp6niyz25mxh2spn6kfh9bfhrpfd36d"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "halogen-hooks" = pkgs.stdenv.mkDerivation { - name = "halogen-hooks"; - version = "v0.6.0"; - src = pkgs.fetchgit { - url = "https://github.com/thomashoneyman/purescript-halogen-hooks.git"; - rev = "cbbf5658f3855d84f81227c88f80d484454421f2"; - sha256 = "11kq6220f0b77lici6mrr23xmra9ld3vzmxa05qaignvw2nn3855"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "halogen-hooks-extra" = pkgs.stdenv.mkDerivation { - name = "halogen-hooks-extra"; - version = "v0.9.0"; - src = pkgs.fetchgit { - url = "https://github.com/jordanmartinez/purescript-halogen-hooks-extra.git"; - rev = "575b38a7d5839aa88b844ccfc491f4dbe861d794"; - sha256 = "134r2sv1nk02hk0rcarcprcd7c9qc4bxm51dic7gz4r9hqijc4fr"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "halogen-subscriptions" = pkgs.stdenv.mkDerivation { - name = "halogen-subscriptions"; - version = "v2.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-halogen/purescript-halogen-subscriptions.git"; - rev = "a41a63a18b2bc7c7c12eb2afc0c3e4276eecd233"; - sha256 = "0ljkjmz526yjcfzil1n1fq5yichs38dy64y3fmkz302hk6gsgz3x"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "halogen-vdom" = pkgs.stdenv.mkDerivation { - name = "halogen-vdom"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-halogen/purescript-halogen-vdom.git"; - rev = "e6630023500841d910f6690fa1bc6ba649ac6f15"; - sha256 = "0d2hpyrai825ynpl5yf5kzvh47bj3xw7iml2vl6pvkczbycnl5l8"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "heterogeneous" = pkgs.stdenv.mkDerivation { - name = "heterogeneous"; - version = "v0.6.0"; - src = pkgs.fetchgit { - url = "https://github.com/natefaubion/purescript-heterogeneous.git"; - rev = "5b7542bdd9547c5aef95b8878f103f0ce4ee1383"; - sha256 = "0ff1wjq2ayhy67ydggbb2qlzbhvmv1m1z8dcp48p9zhxiq9fpfsz"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "http-methods" = pkgs.stdenv.mkDerivation { - name = "http-methods"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-http-methods.git"; - rev = "99b48d54b978e4e6438d850015d59e57ac64824e"; - sha256 = "126x1cqr1769a3yzigpp8sp33n6s4fadai7w30mb2nk9dbxy0hw5"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "identity" = pkgs.stdenv.mkDerivation { - name = "identity"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-identity.git"; - rev = "ef6768f8a52ab0bc943a85f5761ba07c257f639f"; - sha256 = "1lh0pkwwdyd8q9bgf4l1m96gdnardki4r2s359cnhrwp94b43fyr"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "infinite-lists" = pkgs.stdenv.mkDerivation { - name = "infinite-lists"; - version = "v3.2.0"; - src = pkgs.fetchgit { - url = "https://git@github.com/Thimoteus/purescript-infinite-lists"; - rev = "9cfc3962c521454da7c4c928fe0718243f31d784"; - sha256 = "0zblzpkah6a6nj0s323hp4p1z1vyr26s8qh2cxhk0jriswdn00qf"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "integers" = pkgs.stdenv.mkDerivation { - name = "integers"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-integers.git"; - rev = "54d712b25c594833083d15dc9ff2418eb9c52822"; - sha256 = "04j9sqvkgyxxvbm8jfc2118wzmgswn8jva9fysgbsnmsg9vcxfm6"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "invariant" = pkgs.stdenv.mkDerivation { - name = "invariant"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-invariant.git"; - rev = "1d2a196d51e90623adb88496c2cfd759c6736894"; - sha256 = "07rqag47ykdiqc5yfbc1a64ijaqliljhcw1vgbv81m7ljzzd2xna"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "js-date" = pkgs.stdenv.mkDerivation { - name = "js-date"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-js-date.git"; - rev = "1ea020316946cc4b87195bca9c54d0c16abaa490"; - sha256 = "03535g8hc4bzyzig25hf75dls9ypsgrdk2nc45h8zw4xyy4ha0gz"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "js-object" = pkgs.stdenv.mkDerivation { - name = "js-object"; - version = "73db55f89744b032f44c9ec49804f46e3ee63ed7"; - src = pkgs.fetchgit { - url = "https://git@github.com/paluh/purescript-js-object"; - rev = "73db55f89744b032f44c9ec49804f46e3ee63ed7"; - sha256 = "0zcq2cqwd5ixhjq2y11zniv61qcv5a3w14jd9hhpcn9gx6rb4gsp"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "js-timers" = pkgs.stdenv.mkDerivation { - name = "js-timers"; - version = "v6.1.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-js-timers.git"; - rev = "7cb728b3e6dc29f355143617e6e9ac770ecd9273"; - sha256 = "0dm933kqhwgmpkylgrlpjplidn8biic8jlzs4l4nny4a1z20mr61"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "js-uri" = pkgs.stdenv.mkDerivation { - name = "js-uri"; - version = "v3.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-js-uri.git"; - rev = "ac659740288de7c5e64166dbfda9d4985c5044b7"; - sha256 = "013aq6md3qija1hz6ynr17z1wvi2j844xh992j27bgjsd07r2309"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "json-helpers" = pkgs.stdenv.mkDerivation { - name = "json-helpers"; - version = "0ff78186a949722f37218046a09abdf27d77ecfe"; - src = pkgs.fetchgit { - url = "https://github.com/input-output-hk/purescript-bridge-json-helpers.git"; - rev = "0ff78186a949722f37218046a09abdf27d77ecfe"; - sha256 = "1j43ck2hp4d64r1c6py5kimimlw0cli1alfaffnqlqmqg3d8pfbz"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "lazy" = pkgs.stdenv.mkDerivation { - name = "lazy"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-lazy.git"; - rev = "48347841226b27af5205a1a8ec71e27a93ce86fd"; - sha256 = "0dxlc3b2bdqsri45i7a9bvwvv0gg43cc1gq61zi41f290a29ny2q"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "lcg" = pkgs.stdenv.mkDerivation { - name = "lcg"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-lcg.git"; - rev = "67c6c6483a563a59ae036d9dca0f1be2835326a5"; - sha256 = "1shzn6zvc1cxd7v0bvfsk7x3xf59vxby8c5lfjvd746r6396zn65"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "lists" = pkgs.stdenv.mkDerivation { - name = "lists"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-lists.git"; - rev = "b113451e5b41cad87d669a3165f955c71cd863e2"; - sha256 = "1mg7vy44k8jlqkri7x4ikciixx92b17wi35887x09dwdsicjf0sx"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "markdown" = pkgs.stdenv.mkDerivation { - name = "markdown"; - version = "3c5536d5cad663c0912bae89205dd1c8934d525b"; - src = pkgs.fetchgit { - url = "https://github.com/input-output-hk/purescript-markdown"; - rev = "3c5536d5cad663c0912bae89205dd1c8934d525b"; - sha256 = "0d8425j6mkg6nw5f5qc54rkgd7n35ylrb463j9xfi4jxmhg238ng"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "marlowe" = pkgs.stdenv.mkDerivation { - name = "marlowe"; - version = "1f5d5606c2deced2363a69a76a1a24a052618c67"; - src = pkgs.fetchgit { - url = "https://github.com/input-output-hk/purescript-marlowe"; - rev = "1f5d5606c2deced2363a69a76a1a24a052618c67"; - sha256 = "10xjxdi86gdx8zpyjhhk15fc3llhr9znl7jjxj5am9ffkxrqn63i"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "maybe" = pkgs.stdenv.mkDerivation { - name = "maybe"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-maybe.git"; - rev = "c6f98ac1088766287106c5d9c8e30e7648d36786"; - sha256 = "0n33g8c579vcs06ii0r7f14jjdwzjw7p583w4nmrv9h442q2cvlz"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "media-types" = pkgs.stdenv.mkDerivation { - name = "media-types"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-media-types.git"; - rev = "af853de226592f319a953637069a943dd261cba3"; - sha256 = "0bxpsd2yw3zg58ay649v3xld7n17n7j7n9y8l841cjih9bc7ccxx"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "mmorph" = pkgs.stdenv.mkDerivation { - name = "mmorph"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/Thimoteus/purescript-mmorph.git"; - rev = "94bc558ac34184d5236a7a9b2463dcc7551ced8e"; - sha256 = "0m3m1kjy4i9lwzj8l5qlafxawyhbdxj035wa5ys4j8v4013a92xg"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "newtype" = pkgs.stdenv.mkDerivation { - name = "newtype"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-newtype.git"; - rev = "29d8e6dd77aec2c975c948364ec3faf26e14ee7b"; - sha256 = "0kfc644zn2f9rpx8fy4gjvmz04k9mv1c2xrqis8m3s0ydnhbffd7"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "node-buffer" = pkgs.stdenv.mkDerivation { - name = "node-buffer"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-node/purescript-node-buffer.git"; - rev = "7be7bd082b7d3e15de2ed5a626d43af746bdb35e"; - sha256 = "1l1j4ml0lyhnxs1zcy3jchlc0mbsn40g1pxyb4lv6slhp0qdhjhp"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "node-fs" = pkgs.stdenv.mkDerivation { - name = "node-fs"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-node/purescript-node-fs.git"; - rev = "7dfc7cad919cec097d40c8fce611338715969f75"; - sha256 = "0892d8d81czrh61w8zd5k48jzc5s6wkf3k5c033igqjbksxa114s"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "node-path" = pkgs.stdenv.mkDerivation { - name = "node-path"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-node/purescript-node-path.git"; - rev = "d5f08cfde829b831408c4c6587cec83f2cd6a58e"; - sha256 = "1d38ipij4lb1nq8wkv7kmpk77z5ac0spfc89hfc9yn6jnscl6sky"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "node-streams" = pkgs.stdenv.mkDerivation { - name = "node-streams"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-node/purescript-node-streams.git"; - rev = "8395652f9f347101fe042f58726edc592ae5086c"; - sha256 = "1cgkh3dwnhv90r7dak3x4dq698gh30ghfxncrw0ngwrv5pismn0x"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "nonempty" = pkgs.stdenv.mkDerivation { - name = "nonempty"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-nonempty.git"; - rev = "28150ecc7419238b187abd609a92a645273348bb"; - sha256 = "1mwdc2sny2ygp67kyk7h2493vq7syf7j18s3d9a5gwf1y7jlf7gh"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "now" = pkgs.stdenv.mkDerivation { - name = "now"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-now.git"; - rev = "b5ffed2381e5fefc063f484e607e8499e79eaf32"; - sha256 = "01khmqs4iz7dhlvd43zxj19q0c0vvqf1m128vgvgxz5mv430zfgr"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "nullable" = pkgs.stdenv.mkDerivation { - name = "nullable"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-nullable.git"; - rev = "3202744c6c65e8d1fbba7f4256a1c482078e7fb5"; - sha256 = "10s3b54pjmr2rxlyzvc8yc99k1dpn0qrijnc4y65yj5z6bxf2791"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "numbers" = pkgs.stdenv.mkDerivation { - name = "numbers"; - version = "v9.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-numbers.git"; - rev = "2a53528f18f9415334bae28e7bb3cf3be86342c2"; - sha256 = "1h4v6ir1hq6gvkk0kla38vlcd6bv73xkc8pv71jygwqxrdwfxxgw"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "ordered-collections" = pkgs.stdenv.mkDerivation { - name = "ordered-collections"; - version = "v3.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-ordered-collections.git"; - rev = "9826b7632d0d0a691173bde308a634195f42a419"; - sha256 = "1wk8mcn1zsxi0yk9ybas2v7m0drb492806gld1xxxic8x1i19ws0"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "orders" = pkgs.stdenv.mkDerivation { - name = "orders"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-orders.git"; - rev = "f86db621ec5eef1274145f8b1fd8ebbfe0ed4a2c"; - sha256 = "14fjls3v14ia6fr2w4p0i5dqv10zk343wg28m4c77a17jmvbs9r4"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "parallel" = pkgs.stdenv.mkDerivation { - name = "parallel"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-parallel.git"; - rev = "85290dca837771ac4870071008c933d315ef678f"; - sha256 = "0bpwvzq4dn7vx5mfj12w1zvvnamc6w2c45c2v54b9yw36snnwpcf"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "parsing" = pkgs.stdenv.mkDerivation { - name = "parsing"; - version = "v9.1.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-parsing.git"; - rev = "44ef16b7cfb7cedc3d518c00ef10c6cb73ff4fc8"; - sha256 = "1wkk3p1w2k1cvby4airyxgavk1djfzvzc2ch6b8951b592rj8lkr"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "partial" = pkgs.stdenv.mkDerivation { - name = "partial"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-partial.git"; - rev = "0fa0646f5ea1ec5f0c46dcbd770c705a6c9ad3ec"; - sha256 = "04s1h0r3slyd8kcamhqqrr6piksl9y76nmf2418j0ifhp16qwxmm"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "pipes" = pkgs.stdenv.mkDerivation { - name = "pipes"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/felixschl/purescript-pipes.git"; - rev = "e3bdc0b0db0a67e89a717b6118b23e78a380e23f"; - sha256 = "1jz3bfbl8b0hgbcm9y98bv2z29b072v1k8snp19vb2xql1zd40sx"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "precise" = pkgs.stdenv.mkDerivation { - name = "precise"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-precise.git"; - rev = "37a6a4ffd0ab6f029cc6432f69bd3deb3b92eafd"; - sha256 = "1lvx109hlhkv2dk0hr0ajmqhvd0jiqpw0k49sk8sk4hs02p2p9q9"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "prelude" = pkgs.stdenv.mkDerivation { - name = "prelude"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-prelude.git"; - rev = "32787f4399c92459c41602131a5858559eb868c5"; - sha256 = "0jkbckxw2640gmfi2f8bpf2zwnay2dxy8n24rvxl3w3dihcgd9qc"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "profunctor" = pkgs.stdenv.mkDerivation { - name = "profunctor"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-profunctor.git"; - rev = "0a966a14e7b0c827d44657dc1710cdc712d2e034"; - sha256 = "07rhk8micbc74my6s53xbj2smvvwah2w1drqrcmcnncxdks3lqg3"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "profunctor-lenses" = pkgs.stdenv.mkDerivation { - name = "profunctor-lenses"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-profunctor-lenses.git"; - rev = "973d567afe458fd802cf4f0d9725b6dc35ad9297"; - sha256 = "0axz7nznn12iqh6sn9qjg6i8qglpdsqgkp30ndwdj98czcnbnybv"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "psci-support" = pkgs.stdenv.mkDerivation { - name = "psci-support"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-psci-support.git"; - rev = "897cdb543548cb6078d69b6413b54841404eda72"; - sha256 = "1ix53r8avkn3fw72mngwzw7v6c6mv7j4miw5mrgjrh9hb8p2ydl1"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "quickcheck" = pkgs.stdenv.mkDerivation { - name = "quickcheck"; - version = "v8.0.1"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-quickcheck.git"; - rev = "bf5029f97e6c0d7552d3a08d2ab793a19e2c5e3d"; - sha256 = "142dvh57fl8b6i7mm37a38v7vkc1znbqz6l6wqa704m53hkikvyd"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "quickcheck-laws" = pkgs.stdenv.mkDerivation { - name = "quickcheck-laws"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-quickcheck-laws.git"; - rev = "04f00fb78d88f38a2f2bb73b75f97ce5bf5624fc"; - sha256 = "0izp71wq253k9wih2hspfs4p1s36yins2a5mh13yl57pf1srbrky"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "random" = pkgs.stdenv.mkDerivation { - name = "random"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-random.git"; - rev = "9540bc965a9596da02fefd9949418bb19c92533a"; - sha256 = "0qz14qviz5053j9h1jwpk0gnn692hcdx6fp90wckzrnw31d53174"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "record" = pkgs.stdenv.mkDerivation { - name = "record"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-record.git"; - rev = "c89cd1ada6b636692571fc374196b1c39c4c9f70"; - sha256 = "1g7s2h1as5cz824wpm0jhjprrh66shha5i4gq37q73yw0s5p2ahm"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "refs" = pkgs.stdenv.mkDerivation { - name = "refs"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-refs.git"; - rev = "f8e6216da4cb9309fde1f20cd6f69ac3a3b7f9e8"; - sha256 = "09bvfxhjfwfwv55py45s71maazwrr68k0rk4v8ynfqv91h34319h"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "remotedata" = pkgs.stdenv.mkDerivation { - name = "remotedata"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/krisajenkins/purescript-remotedata.git"; - rev = "cc9932a6c19262d8e4217c534c658a127562c14c"; - sha256 = "1kr4wbsqd3kaf8c4w13m988602qvcm3262v0aij01jrms4p1x92q"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "routing" = pkgs.stdenv.mkDerivation { - name = "routing"; - version = "v11.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-routing.git"; - rev = "255ec9ada5ceb6e6e0e02f71a767cf86064165c0"; - sha256 = "0z915cgwdq8q3rsy6v6il4lqhkk3xr5mc7zfdyd6rgdjhmr7qiv7"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "routing-duplex" = pkgs.stdenv.mkDerivation { - name = "routing-duplex"; - version = "v0.6.0"; - src = pkgs.fetchgit { - url = "https://github.com/natefaubion/purescript-routing-duplex.git"; - rev = "f4430e60d6519b5c43a888cf153dddee0cbc2946"; - sha256 = "0p5rsvbi5jy52yldyibrjgkbspnzc1ixp4jndf3jv15s90mim0xs"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "safe-coerce" = pkgs.stdenv.mkDerivation { - name = "safe-coerce"; - version = "v2.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-safe-coerce.git"; - rev = "7fa799ae80a38b8d948efcb52608e58e198b3da7"; - sha256 = "00m4l733gpl0153cbl6n5kly7jr8ids399apza2rbczif40brp9g"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "semirings" = pkgs.stdenv.mkDerivation { - name = "semirings"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-semirings.git"; - rev = "e862c970483feff7dacdf6db5be5a84ea754fd63"; - sha256 = "0j0nr1kqgm2zgxfpzzmcpxl60mncq497mhkfxmkmz1kv4ix1zyra"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "servant-support" = pkgs.stdenv.mkDerivation { - name = "servant-support"; - version = "61f85eb0657196d4bfc80ae4736d6a6d9ebd4529"; - src = pkgs.fetchgit { - url = "https://github.com/input-output-hk/purescript-servant-support"; - rev = "61f85eb0657196d4bfc80ae4736d6a6d9ebd4529"; - sha256 = "1y2x4qfrfnwsnk3h8nl1sf1xjhc7ans3dn5dvvkf6cpxjrc8i73p"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "simple-json" = pkgs.stdenv.mkDerivation { - name = "simple-json"; - version = "v9.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/justinwoo/purescript-simple-json.git"; - rev = "b85e112131240ff95b5c26e9abb8e2fa6db3c656"; - sha256 = "1k78zm7cq4yf65a1yrw7vqnflrnvm45b3jsxxk5vwcrzdlfrbxad"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "spec" = pkgs.stdenv.mkDerivation { - name = "spec"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-spec/purescript-spec.git"; - rev = "e7d976e3562e0d0c1d3b4cf51fb9b53957a8e157"; - sha256 = "1l70bidnscfsaj9fsfl7vxslp7sl633273ijm9219cjsrnhm55ky"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "spec-quickcheck" = pkgs.stdenv.mkDerivation { - name = "spec-quickcheck"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-spec/purescript-spec-quickcheck.git"; - rev = "c83de337db1f74ff75e0d7c574a2f7407bc5f2b2"; - sha256 = "1y9rzb8kbahhchplswdxrjqm4qjkv1bnv9mzg8v62m1ipk3kdndj"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "st" = pkgs.stdenv.mkDerivation { - name = "st"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-st.git"; - rev = "2cc7ae1c3318a303378c4a9f3fa0f10ee7cc3589"; - sha256 = "1ykk27zn03svfsv2s1mf88d6x3q6qhb9bwjzgals79krw8w0aiyl"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "strings" = pkgs.stdenv.mkDerivation { - name = "strings"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-strings.git"; - rev = "4bc6954448d056f8aa7a659695a6ad60ad4fdf19"; - sha256 = "101va3rawcn5inp20krfg192bbjbvm27xfzwwc1inb2ya0m98amg"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "tailrec" = pkgs.stdenv.mkDerivation { - name = "tailrec"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-tailrec.git"; - rev = "5e2104aa734b31a17074cc805bf087d72b65afd1"; - sha256 = "0vc3dpsd2xxz694zlm75nx1cn6c6f29nzkb8xlxkk6ydw3wpsk3w"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "these" = pkgs.stdenv.mkDerivation { - name = "these"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-these.git"; - rev = "ad4de7d2bb9ce684a9dff5def6489630736985b8"; - sha256 = "1i73qz7pk11mbiymhfg21i3nq92hqjmqzj4gjp1n6l2zkm0lmql3"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "transformers" = pkgs.stdenv.mkDerivation { - name = "transformers"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-transformers.git"; - rev = "be72ab52357d9a665cbf93d73ba1c07c4b0957ee"; - sha256 = "0ijrdsppl8vx0rlbwc9p0vjbmvwlcy4ia7xymvk6y34zbxzjlzm6"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "tuples" = pkgs.stdenv.mkDerivation { - name = "tuples"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-tuples.git"; - rev = "4f52da2729b448c8564369378f1232d8d2dc1d8b"; - sha256 = "1m1ng0xxicb73945jymcl1hn2y2hmynlnmhb2k0kkn1jrjwgcc3d"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "type-equality" = pkgs.stdenv.mkDerivation { - name = "type-equality"; - version = "v4.0.1"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-type-equality.git"; - rev = "0525b7d39e0fbd81b4209518139fb8ab02695774"; - sha256 = "1ass38jdycsjisdimdc4drg2w8vkkwp6lkvz3kvy7q0h98vdmlbr"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "typelevel-prelude" = pkgs.stdenv.mkDerivation { - name = "typelevel-prelude"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-typelevel-prelude.git"; - rev = "dca2fe3c8cfd5527d4fe70c4bedfda30148405bf"; - sha256 = "0x86mrg33kpnrnsfp4p3c92j5lpyqzy87bxdynwf7smk3inqr2jc"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "undefined-or" = pkgs.stdenv.mkDerivation { - name = "undefined-or"; - version = "5822ab71acc9ed276afd6fa96f1cb3135e376719"; - src = pkgs.fetchgit { - url = "https://github.com/CarstenKoenig/purescript-undefined-or.git"; - rev = "5822ab71acc9ed276afd6fa96f1cb3135e376719"; - sha256 = "152b2cfakg3inqcq5dfr70q8ngw3sbpx1fz9krvjjy7mmd9mw431"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "unfoldable" = pkgs.stdenv.mkDerivation { - name = "unfoldable"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-unfoldable.git"; - rev = "493dfe04ed590e20d8f69079df2f58486882748d"; - sha256 = "15z2k639ph8wdkrc2y838m5am1z7szw2vqymmv021skzisyn7zwf"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "unicode" = pkgs.stdenv.mkDerivation { - name = "unicode"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-unicode.git"; - rev = "6454d59d9e1fd1bc5a72e80e985d8282022a567a"; - sha256 = "0w2gsmqcy7pj5vd22qzpig20bdgzmbagyqxrg9mm1njjfsmcm8cv"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "unordered-collections" = pkgs.stdenv.mkDerivation { - name = "unordered-collections"; - version = "v3.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/fehrenbach/purescript-unordered-collections.git"; - rev = "6fb203af23c9910ca6776d0673a0256690e0fbcd"; - sha256 = "1cip31vx9v060hrn78gxlzkwkfgz75si50m19h2w2vdnv3v64nwh"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "unsafe-coerce" = pkgs.stdenv.mkDerivation { - name = "unsafe-coerce"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-unsafe-coerce.git"; - rev = "ab956f82e66e633f647fb3098e8ddd3ec58d689f"; - sha256 = "0r6d3dx8jalfzvrvkagz9v05yxwkkhgbzlpswg4w1cyl03zjcla4"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "unsafe-reference" = pkgs.stdenv.mkDerivation { - name = "unsafe-reference"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-unsafe-reference.git"; - rev = "058e23b8b9adcf776a910f9934ff515ddee73af5"; - sha256 = "07793ijx8vv9rac0yqkxzh5djckhslcy16cm8k0lgjl6bc9mwgra"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "uri" = pkgs.stdenv.mkDerivation { - name = "uri"; - version = "v9.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-uri.git"; - rev = "6cb335da26c61dad7021281bdc7e4ac5136200fe"; - sha256 = "05zf018s2zjd52dl5qyq9b6804yr0cw0dmqzd2klfwmdv6p4rnl3"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "uuid" = pkgs.stdenv.mkDerivation { - name = "uuid"; - version = "v9.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/megamaddu/purescript-uuid.git"; - rev = "69128690b8686e3f819f1e107a960509664bca3f"; - sha256 = "0msj229spkf5pg5yq0b3yxdjzb836c5nfng9h36vrgczd2n6gamn"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "validation" = pkgs.stdenv.mkDerivation { - name = "validation"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-validation.git"; - rev = "a3d9ec2176a7a808d70a01fa7e6f16d10e05429a"; - sha256 = "0i11y3qqarp6gkj6af4x8idaiq9sva8ajykpdxbbgmb79vlfyrn1"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "variant" = pkgs.stdenv.mkDerivation { - name = "variant"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/natefaubion/purescript-variant.git"; - rev = "8b2bd73a4202257d80a955c4dd36f6055f149823"; - sha256 = "18nyxnaqqg1zzydwd2hh9hbzr31j509g5yb1lnd0m60bma4l9h5g"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "web-clipboard" = pkgs.stdenv.mkDerivation { - name = "web-clipboard"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-clipboard.git"; - rev = "eded8dd18090c4d0938c2e51ad7407897811d32f"; - sha256 = "1nr7mdrbpfr3k5m87hnrfqz69kslvyiflgw8j78cw475ahsm28z0"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "web-dom" = pkgs.stdenv.mkDerivation { - name = "web-dom"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-dom.git"; - rev = "568a1ee158b29e6e739e7a9aaed3e35ca4c4305a"; - sha256 = "0angs86ld0h3ld889ag55lh62101dfn3fknyqrfv0imgn40vwm44"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "web-events" = pkgs.stdenv.mkDerivation { - name = "web-events"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-events.git"; - rev = "2124356117be7b764a2f3948032255ac4dab7051"; - sha256 = "0l47gsgj71x0gjbhjqwsar2y44ljhq3xa0nkgr1qvqxmcm00llqf"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "web-file" = pkgs.stdenv.mkDerivation { - name = "web-file"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-file.git"; - rev = "023786ae62bbb8bf58156dd7f02011fa38221ef1"; - sha256 = "1wjf1m5y2qsba83is297icv9zyl7jilxdga0192mm1rp0j16jjln"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "web-html" = pkgs.stdenv.mkDerivation { - name = "web-html"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-html.git"; - rev = "be189cf91b9a19cf493637423522e2fe4a0088cc"; - sha256 = "0yspv6sci3mkflvqwf5jvz3a8nclmhbvazx9n34acyj3aai7k6bs"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "web-pointerevents" = pkgs.stdenv.mkDerivation { - name = "web-pointerevents"; - version = "v1.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-pointerevents.git"; - rev = "cf1f48dda73ea34f81a769809489806fce0cac40"; - sha256 = "1yswmb81vpj2nhb5ibiddih3zk8kwg1rpymq6jydqawrhdzwz8z7"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "web-socket" = pkgs.stdenv.mkDerivation { - name = "web-socket"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-socket.git"; - rev = "9d37be740d9c99449ddb4ca5de8a0339e4ae1f55"; - sha256 = "0iqymasryrfd7rnkbg0m23c879r18qvy64nkf4yhgmdm26sf5vxa"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "web-storage" = pkgs.stdenv.mkDerivation { - name = "web-storage"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-storage.git"; - rev = "6b74461e136755db70c271dc898d51776363d7e2"; - sha256 = "0q1grh8cp6h1szsqg3xmwlzrc1bbz8yzlwxlcl1iym5mjiyzgkcs"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "web-touchevents" = pkgs.stdenv.mkDerivation { - name = "web-touchevents"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-touchevents.git"; - rev = "53feadd58661b6a8bce673f4a1da4a6436cbbb24"; - sha256 = "1897hz57myik4p0nr18z18wagv0qk67capa76nrdqpmkm58f20h8"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "web-uievents" = pkgs.stdenv.mkDerivation { - name = "web-uievents"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-uievents.git"; - rev = "091ad1b092dee27ec9bcbaad84bb34c4218026df"; - sha256 = "1dj52fn9nx7qk8i22kyss2xjwpzjqjm3qjfad2lc4802iglii9i7"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - "web-xhr" = pkgs.stdenv.mkDerivation { - name = "web-xhr"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-xhr.git"; - rev = "476122fe3ad19031aeb69186209b480e2fc9ef25"; - sha256 = "1swpprc000gfqid6r05pxs8wvlc5xjry5s2kk8lk3ah2dgv297sf"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; - - }; - - cpPackage = pkg: - let - target = ".spago/${pkg.name}/${pkg.version}"; - in '' - if [ ! -e ${target} ]; then - echo "Installing ${target}." - mkdir -p ${target} - cp --no-preserve=mode,ownership,timestamp -r ${toString pkg.outPath}/* ${target} - else - echo "${target} already exists. Skipping." - fi - ''; - - getGlob = pkg: ''".spago/${pkg.name}/${pkg.version}/src/**/*.purs"''; - - getStoreGlob = pkg: ''"${pkg.outPath}/src/**/*.purs"''; - -in { - inherit inputs; - - installSpagoStyle = pkgs.writeShellScriptBin "install-spago-style" '' - set -e - echo installing dependencies... - ${builtins.toString (builtins.map cpPackage (builtins.attrValues inputs))} - echo "echo done." - ''; - - buildSpagoStyle = pkgs.writeShellScriptBin "build-spago-style" '' - set -e - echo building project... - purs compile ${builtins.toString (builtins.map getGlob (builtins.attrValues inputs))} "$@" - echo done. - ''; - - buildFromNixStore = pkgs.writeShellScriptBin "build-from-store" '' - set -e - echo building project using sources from nix store... - purs compile ${builtins.toString ( - builtins.map getStoreGlob (builtins.attrValues inputs))} "$@" - echo done. - ''; - - mkBuildProjectOutput = - { src, purs }: - - pkgs.stdenv.mkDerivation { - name = "build-project-output"; - src = src; - - buildInputs = [ purs ]; - - installPhase = '' - mkdir -p $out - purs compile "$src/**/*.purs" ${builtins.toString - (builtins.map - (x: ''"${x.outPath}/src/**/*.purs"'') - (builtins.attrValues inputs))} - mv output $out - ''; - }; -} diff --git a/marlowe-playground-client/webpack.config.js b/marlowe-playground-client/webpack.config.js index 3369f7aa16..9457966045 100644 --- a/marlowe-playground-client/webpack.config.js +++ b/marlowe-playground-client/webpack.config.js @@ -8,6 +8,17 @@ const webpack = require("webpack"); const isDevelopment = process.env.NODE_ENV === "development"; +if (process.env.WEB_COMMON_SRC === undefined) { + process.env.WEB_COMMON_SRC = path.resolve(__dirname, "../web-common"); +} + +if (process.env.WEB_COMMON_MARLOWE_SRC === undefined) { + process.env.WEB_COMMON_MARLOWE_SRC = path.resolve( + __dirname, + "../web-common-marlowe" + ); +} + class ErrorReportingPlugin { apply(compiler) { compiler.hooks.done.tap("ErrorReportingPlugin", (stats) => diff --git a/nix/scripts.nix b/nix/scripts.nix index cc5eb51e24..cc08120ebd 100644 --- a/nix/scripts.nix +++ b/nix/scripts.nix @@ -1,4 +1,4 @@ -{ pkgs, system, easyPS, prettier }: +{ pkgs, easyPS, prettier }: let writeShellScriptBinInRepoRoot = name: script: pkgs.writeShellScriptBin name '' cd `${pkgs.git}/bin/git rev-parse --show-toplevel` @@ -14,7 +14,7 @@ let # Re-generate the files mkdir -p $generated - nix run .#apps.${system}.marlowe-playground-server:exe:marlowe-playground-server -- psgenerator $generated + nix run .#marlowe-playground-server:exe:marlowe-playground-server -- psgenerator $generated # Format them cp ${builtins.path { name = "tidyrc.json"; path = ../.tidyrc.json; } } $generated/.tidyrc.json @@ -27,7 +27,21 @@ let cd ../.. chmod -R +w $generated ''; + + build-ghc-with-marlowe = "$(nix build .#ghc-with-marlowe --print-out-paths)"; + + # start-backend: script to start the plutus-playground-server + # + # Note: We need to add ghc to the path because the server provides /runghc + # which needs ghc and dependencies. + startBackend = writeShellScriptBinInRepoRoot "marlowe-playground-server" '' + echo "marlowe-playground-server: for development use only" + GHC_WITH_PKGS=${build-ghc-with-marlowe} + export PATH=$GHC_WITH_PKGS/bin:$PATH + export FRONTEND_URL=https://localhost:8009 + nix run .#marlowe-playground-server:exe:marlowe-playground-server -- webserver + ''; in { - inherit marlowePlaygroundGeneratePurs; + inherit marlowePlaygroundGeneratePurs startBackend; } diff --git a/web-common-marlowe/default.nix b/web-common-marlowe/default.nix deleted file mode 100644 index 21d6d9e2c2..0000000000 --- a/web-common-marlowe/default.nix +++ /dev/null @@ -1 +0,0 @@ -{ lib, gitignore-nix }: gitignore-nix.gitignoreSource ./. diff --git a/web-common/default.nix b/web-common/default.nix deleted file mode 100644 index 21d6d9e2c2..0000000000 --- a/web-common/default.nix +++ /dev/null @@ -1 +0,0 @@ -{ lib, gitignore-nix }: gitignore-nix.gitignoreSource ./. diff --git a/web-common/static/icons.css b/web-common/static/icons.css new file mode 100644 index 0000000000..9725155a30 --- /dev/null +++ b/web-common/static/icons.css @@ -0,0 +1,172 @@ +@import url("https://fonts.googleapis.com/css2?family=Material+Icons+Round"); + +.material-icons-round { + font-weight: inherit; /* override the default of normal that ships with google's css */ + user-select: none; /* disable icons from being selected with the mouse */ +} + +.with-icon::after { + font-family: "Material Icons Round"; + font-size: 24px; + font-weight: normal; + line-height: 1; + white-space: nowrap; + float: right; + margin: -5px -5px -5px 5px; +} + +.with-icon-add::after { + content: "add"; +} + +.with-icon-add-box::after { + content: "add_box"; +} + +.with-icon-add-circle::after { + content: "add_circle"; +} + +.with-icon-arrow-right::after { + content: "east"; +} + +.with-icon-arrow-left::after { + content: "west"; +} + +.with-icon-close::after { + content: "close"; +} + +.with-icon-contacts::after { + content: "people"; +} + +.with-icon-contract::after { + content: "history_edu"; +} + +.with-icon-contract-contract-for-differences::after { + content: "trending_up"; +} + +.with-icon-contract-loan::after { + content: "wrap_text"; /* FIXME: this is the wrong icon */ +} + +.with-icon-contract-purchase::after { + content: "swap_horiz"; +} + +.with-icon-copy::after { + content: "copy"; +} + +.with-icon-done::after { + content: "done"; +} + +.with-icon-check-circle-outline::after { + content: "check_circle_outline"; +} + +.with-icon-error-outline::after { + content: "error_outline"; +} + +.with-icon-expand-more::after { + content: "expand_more"; +} + +.with-icon-expand-less::after { + content: "expand_less"; +} + +.with-icon-help::after { + content: "help"; +} + +.with-icon-help-outline::after { + content: "help_outline"; +} + +.with-icon-history::after { + content: "history"; +} + +.with-icon-home::after { + content: "home"; +} + +.with-icon-info::after { + content: "info"; +} + +.with-icon-language::after { + content: "language"; +} + +.with-icon-menu::after { + content: "short_text"; +} + +.with-icon-next::after { + content: "chevron_right"; +} + +.with-icon-new-contact::after { + content: "person_add_alt"; +} + +.with-icon-pay::after { + content: "credit_score"; +} + +.with-icon-play::after { + content: "play"; +} + +.with-icon-previous::after { + content: "chevron_left"; +} + +.with-icon-refresh::after { + content: "refresh"; +} + +.with-icon-read-more::after { + content: "read_more"; +} + +.with-icon-roles::after { + content: "person_pin_circle"; +} + +.with-icon-running::after { + content: "directions_run"; +} + +.with-icon-south::after { + content: "south"; +} + +.with-icon-sync::after { + content: "sync"; +} + +.with-icon-task-alt::after { + content: "task_alt"; +} + +.with-icon-terms::after { + content: "drive_file_rename_outline"; +} + +.with-icon-timer::after { + content: "timer"; +} + +.with-icon-tutorials::after { + content: "school"; +} diff --git a/web-common/static/index.html b/web-common/static/index.html new file mode 100644 index 0000000000..12dea1186d --- /dev/null +++ b/web-common/static/index.html @@ -0,0 +1,98 @@ + + + + + + + + <% if(htmlWebpackPlugin.options.vendorDll) { %> + + <% } %> <% if(htmlWebpackPlugin.options.googleAnalyticsId) { %> + + <% } %> <% if(htmlWebpackPlugin.options.segmentAnalyticsId) { %> + + + <% } %> + + + diff --git a/web-common/static/popover.css b/web-common/static/popover.css new file mode 100644 index 0000000000..fe79b606d6 --- /dev/null +++ b/web-common/static/popover.css @@ -0,0 +1,34 @@ +/* This styles were taken from https://popper.js.org/docs/v2/tutorial/ */ +.popover-arrow, +.popover-arrow::before { + position: absolute; + width: 8px; + height: 8px; + background: inherit; +} + +.popover-arrow { + visibility: hidden; +} + +.popover-arrow::before { + visibility: visible; + content: ""; + transform: rotate(45deg); +} + +div[data-popper-placement^="top"] > .popover-arrow { + bottom: -4px; +} + +div[data-popper-placement^="bottom"] > .popover-arrow { + top: -4px; +} + +div[data-popper-placement^="left"] > .popover-arrow { + right: -4px; +} + +div[data-popper-placement^="right"] > .popover-arrow { + left: -4px; +} diff --git a/web-common/static/progress-circular.css b/web-common/static/progress-circular.css new file mode 100644 index 0000000000..d2bdb1d1c6 --- /dev/null +++ b/web-common/static/progress-circular.css @@ -0,0 +1,86 @@ +/* Adapted from https://codepen.io/zapdev/pen/MYJRaj */ +.progress.progress-circular svg { + height: 100%; + width: 100%; +} + +.progress.progress-circular.progress-indeterminate svg { + animation: progress-circular-rotate 1.8s linear infinite; +} + +.progress.progress-circular circle { + stroke: currentColor; + fill: none; + transition: stroke-dashoffset 0.5s ease-in-out; + stroke-dasharray: 113, 113; +} + +.progress.progress-circular.progress-0 circle { + stroke-dashoffset: -113; +} + +.progress.progress-circular.progress-10 circle { + stroke-dashoffset: -124.3; +} + +.progress.progress-circular.progress-20 circle { + stroke-dashoffset: -135.6; +} + +.progress.progress-circular.progress-30 circle { + stroke-dashoffset: -146.9; +} + +.progress.progress-circular.progress-40 circle { + stroke-dashoffset: -158.2; +} + +.progress.progress-circular.progress-50 circle { + stroke-dashoffset: -169.5; +} + +.progress.progress-circular.progress-60 circle { + stroke-dashoffset: -180.8; +} + +.progress.progress-circular.progress-70 circle { + stroke-dashoffset: -192.1; +} + +.progress.progress-circular.progress-80 circle { + stroke-dashoffset: -203.4; +} + +.progress.progress-circular.progress-90 circle { + stroke-dashoffset: -214.7; +} + +.progress.progress-circular.progress-100 circle { + stroke-dashoffset: -226; +} + +.progress.progress-circular.progress-indeterminate circle { + animation: progress-circular-dash 1.2s ease-in-out infinite 0s; + transform-origin: 50% 50%; +} + +@keyframes progress-circular-rotate { + 100% { + transform: rotate(360deg); + } +} +@keyframes progress-circular-dash { + 0% { + stroke-dasharray: 7, 106; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 83, 40; + stroke-dashoffset: -28; + } + 100% { + stroke-dasharray: 7, 106; + stroke-dashoffset: -106; + transform: rotate(22deg); + } +}