at master 58 lines 1.6 kB view raw
1{ 2 buildRebar3, 3 fetchFromGitHub, 4 fetchHex, 5 fetchgit, 6 lib, 7 rebar3Relx, 8 writeScript, 9}: 10 11rebar3Relx rec { 12 releaseType = "escript"; 13 pname = "elvis-erlang"; 14 version = "4.1.1"; 15 16 src = fetchFromGitHub { 17 owner = "inaka"; 18 repo = "elvis"; 19 hash = "sha256-9aOJpKYb+M07bi6aEMt5Gtr/edOGm+jyA8bxiLyUd0g="; 20 tag = version; 21 }; 22 23 beamDeps = builtins.attrValues ( 24 import ./rebar-deps.nix { 25 inherit fetchHex fetchgit fetchFromGitHub; 26 builder = buildRebar3; 27 } 28 ); 29 30 passthru.updateScript = writeScript "update.sh" '' 31 #!/usr/bin/env nix-shell 32 #!nix-shell -i bash -p bash common-updater-scripts git nix-prefetch-git gnutar gzip "rebar3WithPlugins {globalPlugins = [beamPackages.rebar3-nix];}" 33 34 set -euo pipefail 35 36 latest=$(list-git-tags | sort -V | tail -1) 37 if [ "$latest" != "${version}" ]; then 38 nixpkgs="$(git rev-parse --show-toplevel)" 39 nix_path="$nixpkgs/pkgs/development/beam-modules/elvis-erlang" 40 update-source-version elvis-erlang "$latest" --version-key=version --print-changes --file="$nix_path/default.nix" 41 tmpdir=$(mktemp -d) 42 cp -R $(nix-build $nixpkgs --no-out-link -A elvis-erlang.src)/* "$tmpdir" 43 (cd "$tmpdir" && HOME=. rebar3 nix lock -o "$nix_path/rebar-deps.nix") 44 nixfmt "$nix_path/rebar-deps.nix" 45 else 46 echo "elvis-erlang is already up-to-date" 47 fi 48 ''; 49 50 meta = { 51 homepage = "https://github.com/inaka/elvis"; 52 description = "Erlang Style Reviewer"; 53 platforms = lib.platforms.unix; 54 license = lib.licenses.asl20; 55 maintainers = with lib.maintainers; [ dlesl ]; 56 mainProgram = "elvis"; 57 }; 58}