From 0862cd7c3fe4fbb5b56a0a87c3789c8361bc022c Mon Sep 17 00:00:00 2001 From: Marcos Benevides Date: Sun, 7 Dec 2025 16:42:26 -0400 Subject: #37 ADD Rebar3 Release and other minor refactors (#38) --- flake.nix | 55 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 22 deletions(-) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index dfb0698..c0a22b2 100644 --- a/flake.nix +++ b/flake.nix @@ -17,24 +17,11 @@ perSystem = { pkgs, system, ... }: let - erlang = pkgs.erlang_28; - - buildRebar3 = pkgs.beamPackages.buildRebar3 { - pname = "domino"; - version = "0.1.0"; - src = ./.; - beam = erlang; - generate-lock = true; - name = "domino"; - buildInputs = [ pkgs.rebar3 ]; - - meta = with pkgs.lib; { - description = "Domino Erlang Server"; - license = pkgs.lib.licenses.mit; - platforms = pkgs.lib.platforms.all; - }; - }; - + erlangLatest = pkgs.erlang_28; + + rebar_config = builtins.readFile ./rebar.config; + match = builtins.match ".*release,.+domino, \"([0-9.]+)\".*" rebar_config; + pversion = builtins.head match; in { # This sets `pkgs` to a nixpkgs with allowUnfree option set. _module.args.pkgs = import nixpkgs { @@ -44,18 +31,42 @@ # nix build packages = { - domino = buildRebar3; - default = buildRebar3; + default = + let + deps = import ./rebar-deps.nix { + inherit (pkgs) fetchHex fetchFromGitHub fetchgit; + builder = pkgs.beamPackages.buildRebar3; + }; + in + pkgs.beamPackages.rebar3Relx { + pname = "domino"; + version = pversion; + src = pkgs.lib.cleanSource ./.; + releaseType = "release"; + profile = "prod"; + buildInputs = ( + with pkgs; + [ + coreutils + gawk + gnugrep + openssl + ] + ++ lib.optional stdenv.isLinux [ + liburing + ] + ); + beamDeps = builtins.attrValues deps; + }; }; # Define devShell for Erlang + Rebar3 devShells = { default = pkgs.mkShell { packages = with pkgs; [ - erlang_28 erlang-language-platform rebar3 - ]; + ] ++ [erlangLatest]; }; }; -- cgit v1.2.3