Skip to content

Commit 1fec673

Browse files
elvis: modernize
- finalAttrs - extra download place - name for the patch - --replace-fail - use installShellFiles - more meta info
1 parent bd780a5 commit 1fec673

File tree

1 file changed

+49
-23
lines changed

1 file changed

+49
-23
lines changed

pkgs/by-name/el/elvis/package.nix

Lines changed: 49 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,75 @@
1-
{ fetchurl, fetchpatch, lib, stdenv, ncurses }:
1+
{
2+
lib,
3+
fetchurl,
4+
fetchpatch,
5+
installShellFiles,
6+
ncurses,
7+
stdenv,
8+
}:
29

3-
stdenv.mkDerivation rec {
10+
stdenv.mkDerivation (finalAttrs: {
411
pname = "elvis";
512
version = "2.2_0";
613

714
src = fetchurl {
8-
url = "http://www.the-little-red-haired-girl.org/pub/elvis/elvis-${version}.tar.gz";
9-
sha256 = "182fj9qzyq6cjq1r849gpam6nq9smwv9f9xwaq84961p56r6d14s";
15+
urls = [
16+
"http://www.the-little-red-haired-girl.org/pub/elvis/elvis-${finalAttrs.version}.tar.gz"
17+
"http://www.the-little-red-haired-girl.org/pub/elvis/old/elvis-${finalAttrs.version}.tar.gz"
18+
];
19+
hash = "sha256-moRmsik3mEQQVrwnlzavOmFrqrovEZQDlsxg/3GSTqA=";
1020
};
1121

12-
buildInputs = [ ncurses ];
13-
1422
patches = [
1523
(fetchpatch {
24+
name = "0000-resolve-stdio-getline-naming-conflict.patch";
1625
url = "https://github.com/mbert/elvis/commit/076cf4ad5cc993be0c6195ec0d5d57e5ad8ac1eb.patch";
17-
sha256 = "0yzkc1mxjwg09mfmrk20ksa0vfnb2x83ndybwvawq4xjm1qkcahc";
26+
hash = "sha256-DCo2caiyE8zV5ss3O1AXy7oNlJ5AzFxdTeBx2Wtg83s=";
1827
})
1928
];
2029

30+
outputs = [
31+
"out"
32+
"man"
33+
];
34+
35+
nativeBuildInputs = [ installShellFiles ];
36+
37+
buildInputs = [ ncurses ];
38+
39+
configureFlags = [ "--ioctl=termios" ];
40+
41+
strictDeps = false;
42+
2143
postPatch = ''
2244
substituteInPlace configure \
23-
--replace '-lcurses' '-lncurses'
24-
'';
25-
26-
preConfigure = ''
27-
mkdir -p $out/share/man/man1
45+
--replace-fail '-lcurses' '-lncurses'
2846
'';
2947

3048
installPhase = ''
31-
mkdir -p $out/bin $out/share/elvis $out/share/elvis/doc
32-
cp elvis ref elvtags elvfmt $out/bin
33-
cp -R data/* $out/share/elvis
34-
cp doc/* $out/share/elvis/doc
35-
36-
mkdir -p $out/share/man/man1
37-
for a in doc/*.man; do
38-
cp $a $out/share/man/man1/`basename $a .man`.1
49+
runHook preInstall
50+
51+
installBin elvis ref elvtags elvfmt
52+
53+
pushd doc
54+
for page in *.man; do
55+
installManPage $page
56+
rm $page
3957
done
40-
'';
58+
popd
4159
42-
configureFlags = [ "--ioctl=termios" ];
60+
mkdir -p $out/share/doc/elvis-${finalAttrs.version}/ $out/share/elvis/
61+
cp -R data/* $out/share/elvis/
62+
cp doc/* $out/share/doc/elvis-${finalAttrs.version}/
63+
64+
runHook postInstall
65+
'';
4366

4467
meta = {
4568
homepage = "http://elvis.the-little-red-haired-girl.org/";
4669
description = "Vi clone for Unix and other operating systems";
4770
license = lib.licenses.free;
71+
mainProgram = "elvis";
72+
maintainers = with lib.maintainers; [ AndersonTorres ];
73+
platforms = lib.platforms.unix;
4874
};
49-
}
75+
})

0 commit comments

Comments
 (0)