Skip to content

Instantly share code, notes, and snippets.

@cigrainger
Created October 18, 2022 23:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cigrainger/d76e0e38a6f2ae0d7d5b7506ef94dd63 to your computer and use it in GitHub Desktop.
Save cigrainger/d76e0e38a6f2ae0d7d5b7506ef94dd63 to your computer and use it in GitHub Desktop.
{
description = "Monorepo";
inputs = {
fenix = {
url = "github:nix-community/fenix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs.url = "nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils, fenix }:
flake-utils.lib.eachSystem [
flake-utils.lib.system.x86_64-linux
flake-utils.lib.system.aarch64-darwin
flake-utils.lib.system.x86_64-darwin
]
(system:
let
overlays = [ fenix.overlay ];
pkgs = import nixpkgs { inherit system; config.allowUnfree = true; };
in
{
devShell = pkgs.mkShell {
buildInputs = with pkgs; [
cargo
clang
clippy
beam.packages.erlangR25.elixir_1_14
erlangR25
(fenix.packages."${system}".complete.withComponents [
"cargo"
"clippy"
"rust-src"
"rustc"
"rustfmt"
])
gdb
gcc
glib
gnumake
nodejs-16_x
openssl
pkg-config
postgresql_13
redis
ssm-session-manager-plugin
stripe-cli
terraform
vips
] ++ lib.optionals stdenv.isLinux [
inotify-tools
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Foundation
darwin.apple_sdk.frameworks.Carbon
darwin.apple_sdk.frameworks.AppKit
];
shellHook = ''
mkdir -p .nix-mix
mkdir -p .nix-hex
export MIX_HOME=$PWD/.nix-mix
export HEX_HOME=$PWD/.nix-hex
export PATH=$MIX_HOME/bin:$PATH
export PATH=$MIX_HOME/escripts:$PATH
export PATH=$HEX_HOME/bin:$PATH
'';
};
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment