diff options
Diffstat (limited to 'nixpkgs/pkgs/development/beam-modules/elvis-erlang/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/beam-modules/elvis-erlang/default.nix | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/beam-modules/elvis-erlang/default.nix b/nixpkgs/pkgs/development/beam-modules/elvis-erlang/default.nix new file mode 100644 index 000000000000..81888bdde21e --- /dev/null +++ b/nixpkgs/pkgs/development/beam-modules/elvis-erlang/default.nix @@ -0,0 +1,46 @@ +{ fetchFromGitHub, fetchgit, fetchHex, rebar3WithPlugins, rebar3-nix, rebar3Relx +, buildRebar3, writeScript, lib }: + +let + owner = "inaka"; + repo = "elvis"; +in rebar3Relx rec { + releaseType = "escript"; + # The package name "elvis" is already taken + pname = "elvis-erlang"; + version = "1.0.1"; + src = fetchFromGitHub { + inherit owner repo; + sha256 = "139mgd4cwc0vazxfnssyym61jd9g45wn1nc53mjfzx5dkrrn4dc5"; + rev = version; + }; + beamDeps = builtins.attrValues (import ./rebar-deps.nix { + inherit fetchHex fetchgit fetchFromGitHub; + builder = buildRebar3; + }); + passthru.updateScript = writeScript "update.sh" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p bash common-updater-scripts git nix-prefetch-git gnutar gzip "rebar3WithPlugins {globalPlugins = [beamPackages.rebar3-nix];}" + + set -euo pipefail + + latest=$(list-git-tags https://github.com/${owner}/${repo}.git | sort -V | tail -1) + if [ "$latest" != "${version}" ]; then + nixpkgs="$(git rev-parse --show-toplevel)" + nix_path="$nixpkgs/pkgs/development/beam-modules/elvis-erlang" + update-source-version elvis-erlang "$latest" --version-key=version --print-changes --file="$nix_path/default.nix" + tmpdir=$(mktemp -d) + cp -R $(nix-build $nixpkgs --no-out-link -A elvis-erlang.src)/* "$tmpdir" + (cd "$tmpdir" && HOME=. rebar3 nix lock -o "$nix_path/rebar-deps.nix") + else + echo "${repo} is already up-to-date" + fi + ''; + meta = with lib; { + homepage = "https://github.com/inaka/elvis"; + description = "Erlang Style Reviewer"; + platforms = platforms.unix; + license = licenses.asl20; + maintainers = with lib.maintainers; [ dlesl ]; + }; +} |