1{ lib
2, buildGoModule
3, fetchFromGitHub
4, installShellFiles
5, pandoc
6, go
7}:
8
9buildGoModule rec {
10 pname = "checkmake";
11 version = "0.2.2";
12
13 src = fetchFromGitHub {
14 owner = "mrtazz";
15 repo = pname;
16 rev = version;
17 hash = "sha256-Ql8XSQA/w7wT9GbmYOM2vG15GVqj9LxOGIu8Wqp9Wao=";
18 };
19
20 vendorHash = null;
21
22 nativeBuildInputs = [
23 installShellFiles
24 pandoc
25 ];
26
27 ldflags = [
28 "-s"
29 "-w"
30 "-X=main.version=${version}"
31 "-X=main.buildTime=1970-01-01T00:00:00Z"
32 "-X=main.builder=nixpkgs"
33 "-X=main.goversion=go${go.version}"
34 ];
35
36 postPatch = ''
37 substituteInPlace man/man1/checkmake.1.md \
38 --replace REPLACE_DATE 1970-01-01T00:00:00Z
39 '';
40
41 postBuild = ''
42 pandoc man/man1/checkmake.1.md -st man -o man/man1/checkmake.1
43 '';
44
45 postInstall = ''
46 installManPage man/man1/checkmake.1
47 '';
48
49 meta = with lib; {
50 description = "Experimental tool for linting and checking Makefiles";
51 mainProgram = "checkmake";
52 homepage = "https://github.com/mrtazz/checkmake";
53 changelog = "https://github.com/mrtazz/checkmake/releases/tag/${src.rev}";
54 license = licenses.mit;
55 maintainers = with maintainers; [ vidbina ];
56 longDescription = ''
57 checkmake is an experimental tool for linting and checking
58 Makefiles. It may not do what you want it to.
59 '';
60 };
61}