diff --git a/purescript/flake.nix b/purescript/flake.nix index f9ecc0f..bc3a6f6 100644 --- a/purescript/flake.nix +++ b/purescript/flake.nix @@ -2,34 +2,39 @@ description = "A Nix-flake-based Purescript development environment"; inputs = { - inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1.*.tar.gz"; + nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1.*.tar.gz"; easy-purescript-nix = { url = "github:justinwoo/easy-purescript-nix"; flake = false; }; }; - outputs = { self, nixpkgs, easy-purescript-nix }: - let - supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ]; # "aarch64-linux" not supported - forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f { - pkgs = import nixpkgs { inherit system; }; - }); - in - { - devShells = forEachSupportedSystem ({ pkgs }: { - default = - let - easy-ps = import easy-purescript-nix { inherit pkgs; }; - in - pkgs.mkShell { - packages = (with pkgs; [ nodejs ]) ++ (with easy-ps; [ + outputs = { + self, + nixpkgs, + easy-purescript-nix, + }: let + supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-darwin"]; # "aarch64-linux" not supported + forEachSupportedSystem = f: + nixpkgs.lib.genAttrs supportedSystems (system: + f { + pkgs = import nixpkgs {inherit system;}; + }); + in { + devShells = forEachSupportedSystem ({pkgs}: { + default = let + easy-ps = import easy-purescript-nix {inherit pkgs;}; + in + pkgs.mkShell { + packages = + (with pkgs; [nodejs]) + ++ (with easy-ps; [ purs spago purescript-language-server purs-tidy ]); - }; - }); - }; + }; + }); + }; } diff --git a/rust/flake.nix b/rust/flake.nix index bc10e5b..c3b59a6 100644 --- a/rust/flake.nix +++ b/rust/flake.nix @@ -2,48 +2,50 @@ description = "A Nix-flake-based Rust development environment"; inputs = { - inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1.*.tar.gz"; + nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1.*.tar.gz"; rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; }; - outputs = { self, nixpkgs, rust-overlay }: - let - overlays = [ - rust-overlay.overlays.default - (final: prev: { - rustToolchain = - let - rust = prev.rust-bin; - in - if builtins.pathExists ./rust-toolchain.toml then - rust.fromRustupToolchainFile ./rust-toolchain.toml - else if builtins.pathExists ./rust-toolchain then - rust.fromRustupToolchainFile ./rust-toolchain - else - rust.stable.latest.default; - }) - ]; - supportedSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; - forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f { - pkgs = import nixpkgs { inherit overlays system; }; - }); - in - { - devShells = forEachSupportedSystem ({ pkgs }: { - default = pkgs.mkShell { - packages = with pkgs; [ - rustToolchain - openssl - pkg-config - cargo-deny - cargo-edit - cargo-watch - rust-analyzer - ]; - }; - }); - }; + outputs = { + self, + nixpkgs, + rust-overlay, + }: let + overlays = [ + rust-overlay.overlays.default + (final: prev: { + rustToolchain = let + rust = prev.rust-bin; + in + if builtins.pathExists ./rust-toolchain.toml + then rust.fromRustupToolchainFile ./rust-toolchain.toml + else if builtins.pathExists ./rust-toolchain + then rust.fromRustupToolchainFile ./rust-toolchain + else rust.stable.latest.default; + }) + ]; + supportedSystems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"]; + forEachSupportedSystem = f: + nixpkgs.lib.genAttrs supportedSystems (system: + f { + pkgs = import nixpkgs {inherit overlays system;}; + }); + in { + devShells = forEachSupportedSystem ({pkgs}: { + default = pkgs.mkShell { + packages = with pkgs; [ + rustToolchain + openssl + pkg-config + cargo-deny + cargo-edit + cargo-watch + rust-analyzer + ]; + }; + }); + }; }