diff --git a/pkgs/development/beam-modules/expert/default.nix b/pkgs/development/beam-modules/expert/default.nix index a656cb55203e..7812ec91d380 100644 --- a/pkgs/development/beam-modules/expert/default.nix +++ b/pkgs/development/beam-modules/expert/default.nix @@ -1,25 +1,30 @@ { + _experimental-update-script-combinators, erlang, fetchFromGitHub, - mixRelease, - lib, fetchMixDeps, + gnused, + lib, + mixRelease, + nix-update-script, + nurl, + writeShellApplication, }: let - version = "0.1.0"; + version = "0.1.1"; src = fetchFromGitHub { owner = "elixir-lang"; repo = "expert"; tag = "v${version}"; - hash = "sha256-r/SovUjU12ENT6OqbYuGK7XAmoxchUgiHTswlON/WeI="; + hash = "sha256-J38+ESTrygj62wcOOAaq1ERM/ze3+p8Ec369Cz0F1Sg="; }; engineDeps = fetchMixDeps { pname = "mix-deps-expert-engine"; inherit src version; - hash = "sha256-2QCaY4TlscRmklPQ897xjjree7N8cLl7O83syfqPmng="; + hash = "sha256-relCdTBialz4Z/BpXZxmuhSYrvJqLINg/AVGfEhuDGo="; preConfigure = '' cd apps/engine @@ -58,6 +63,24 @@ mixRelease rec { passthru = { inherit engineDeps; + + updateScript = _experimental-update-script-combinators.sequence [ + (nix-update-script { }) + (lib.getExe (writeShellApplication { + name = "expert-update-engine"; + runtimeInputs = [ + gnused + nurl + ]; + text = '' + nixpkgs="$(git rev-parse --show-toplevel)" + engineHashOld=${engineDeps.hash} + engineHashNew=$(nurl -e "(import $nixpkgs/. { }).$UPDATE_NIX_ATTR_PATH.engineDeps") + echo "$UPDATE_NIX_ATTR_PATH.engineDeps.hash" >&2 + sed -i "s|$engineHashOld|$engineHashNew|" "$nixpkgs"/pkgs/development/beam-modules/expert/default.nix + ''; + })) + ]; }; meta = {