From 4d322f3e582eff69def505b03e68192559819b01 Mon Sep 17 00:00:00 2001 From: David Date: Sun, 15 Aug 2021 22:48:27 +0200 Subject: [PATCH] erlang-ls: add updateScript To ensure dependencies are also updated --- .../beam-modules/erlang-ls/default.nix | 23 +++++++++++++++++-- .../beam-modules/erlang-ls/rebar-deps.nix | 2 +- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/pkgs/development/beam-modules/erlang-ls/default.nix b/pkgs/development/beam-modules/erlang-ls/default.nix index 4ed1e2fb2e9..9f7d434193a 100644 --- a/pkgs/development/beam-modules/erlang-ls/default.nix +++ b/pkgs/development/beam-modules/erlang-ls/default.nix @@ -1,10 +1,11 @@ -{ fetchFromGitHub, fetchHex, rebar3Relx, buildRebar3, rebar3-proper, stdenv, lib }: +{ fetchFromGitHub, fetchgit, fetchHex, rebar3Relx, buildRebar3, rebar3-proper +, stdenv, writeScript, lib }: let version = "0.18.0"; owner = "erlang-ls"; repo = "erlang_ls"; deps = import ./rebar-deps.nix { - inherit fetchHex fetchFromGitHub; + inherit fetchHex fetchFromGitHub fetchgit; builder = buildRebar3; overrides = (self: super: { proper = super.proper.overrideAttrs (_: { @@ -45,4 +46,22 @@ rebar3Relx { platforms = platforms.unix; license = licenses.asl20; }; + passthru.updateScript = writeScript "update.sh" '' + #!/usr/bin/env nix-shell + #! nix-shell -i bash -p common-updater-scripts coreutils git gnused gnutar gzip "rebar3WithPlugins { globalPlugins = [ beamPackages.rebar3-nix ]; }" + + set -ox errexit + latest=$(list-git-tags https://github.com/${owner}/${repo}.git | sed -n '/[\d\.]\+/p' | sort -V | tail -1) + if [[ "$latest" != "${version}" ]]; then + nixpkgs="$(git rev-parse --show-toplevel)" + nix_path="$nixpkgs/pkgs/development/beam-modules/erlang-ls" + update-source-version erlang-ls "$latest" --version-key=version --print-changes --file="$nix_path/default.nix" + tmpdir=$(mktemp -d) + cp -R $(nix-build $nixpkgs --no-out-link -A erlang-ls.src)/* "$tmpdir" + DEBUG=1 + (cd "$tmpdir" && HOME=. rebar3 as test nix lock -o "$nix_path/rebar-deps.nix") + else + echo "erlang-ls is already up-to-date" + fi + ''; } diff --git a/pkgs/development/beam-modules/erlang-ls/rebar-deps.nix b/pkgs/development/beam-modules/erlang-ls/rebar-deps.nix index 5d55ce0c523..75d033a13d5 100644 --- a/pkgs/development/beam-modules/erlang-ls/rebar-deps.nix +++ b/pkgs/development/beam-modules/erlang-ls/rebar-deps.nix @@ -1,6 +1,6 @@ # Generated by rebar3_nix let fetchOnly = { src, ... }: src; -in { builder ? fetchOnly, fetchHex, fetchFromGitHub, overrides ? (x: y: { }) }: +in { builder ? fetchOnly, fetchHex, fetchgit, fetchFromGitHub, overrides ? (x: y: { }) }: let self = packages // (overrides self packages); packages = with self; {