Skip to content

Commit 01fcd57

Browse files
committed
feat(build): #262 lint git mailmap
- Add lintGitMailMap, docs, module, arg, etc
1 parent d0722ba commit 01fcd57

File tree

9 files changed

+116
-0
lines changed

9 files changed

+116
-0
lines changed

.github/workflows/dev.yml

+10
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,16 @@ jobs:
7373
name: /lintCommitMsg
7474
with:
7575
args: sh -c "nix-env -if . && m . /lintCommitMsg"
76+
lintGitMailMap:
77+
runs-on: ubuntu-latest
78+
steps:
79+
- uses: actions/checkout@v2
80+
with:
81+
fetch-depth: 0
82+
- uses: docker://docker.io/nixos/nix:2.3.12
83+
name: /lintGitMailMap
84+
with:
85+
args: sh -c "nix-env -if . && m . /lintGitMailMap"
7686
lintMarkdown:
7787
runs-on: ubuntu-latest
7888
steps:

.mailmap

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Daniel Salazar <podany270895@gmail.com> Daniel Salazar <dsalaza4@eafit.edu.co>
2+
Daniel Salazar <podany270895@gmail.com> Daniel Salazar <dsalazar@fluidattacks.com>
3+
Daniel Salazar <podany270895@gmail.com> Daniel Salazar <podany270895@gmail.com>
4+
Fluid Attacks <help@fluidattacks.com> Fluid Attacks <help@fluidattacks.com>
5+
Github Octocat <noreply@github.com> GitHub <noreply@github.com>
6+
Kevin Amado <kamadorueda@gmail.com> Kevin Amado <kamadorueda@gmail.com>
7+
Luis Saavedra <lsaavedra@fluidattacks.com> Luis Saavedra <lsaavedra@fluidattacks.com>

README.md

+32
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ in just a few steps, in any technology.
4141
- [Linters](#linters)
4242
- [lintBash](#lintbash)
4343
- [lintCommitMsg](#lintcommitmsg)
44+
- [lintGitMailMap](#lintgitmailmap)
4445
- [lintMarkdown](#lintmarkdown)
4546
- [lintNix](#lintnix)
4647
- [lintPython](#lintpython)
@@ -748,6 +749,28 @@ Example `makes.nix`:
748749

749750
Example invocation: `$ m . /lintCommitMsg`
750751

752+
### lintGitMailMap
753+
754+
Lint the [Git][GIT] [MailMap][GIT_MAILMAP] of the project
755+
with [MailMap Linter][MAILMAP_LINTER].
756+
757+
Attributes:
758+
759+
- enable (`boolean`): Optional.
760+
Defaults to false.
761+
762+
Example `makes.nix`:
763+
764+
```nix
765+
{
766+
lintGitMailMap = {
767+
enable = true;
768+
};
769+
}
770+
```
771+
772+
Example invocation: `$ m . /lintGitMailMap`
773+
751774
### lintMarkdown
752775

753776
Lints Markdown code with [Markdown lint tool][MARKDOWN_LINT].
@@ -1695,6 +1718,12 @@ $ m . /example
16951718
- [FLUID_ATTACKS]: https://fluidattacks.com
16961719
[Fluid Attacks][FLUID_ATTACKS]
16971720
1721+
- [GIT]: https://git-scm.com/
1722+
[Git][GIT]
1723+
1724+
- [GIT_MAILMAP]: https://git-scm.com/docs/gitmailmap
1725+
[Git Mailmap][GIT_MAILMAP]
1726+
16981727
- [GITHUB_ACTIONS]: https://github.com/features/actions
16991728
[Github Actions][GITHUB_ACTIONS]
17001729
@@ -1740,6 +1769,9 @@ $ m . /example
17401769
- [LIZARD]: https://github.com/terryyin/lizard
17411770
[Lizard][LIZARD]
17421771
1772+
- [MAILMAP_LINTER]: https://github.com/kamadorueda/mailmap-linter
1773+
[Mailmap Linter][MAILMAP_LINTER]
1774+
17431775
- [MAKES]: https://github.com/fluidattacks/makes
17441776
[Makes][MAKES]
17451777

makes.nix

+3
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@
6262
enable = true;
6363
branch = "main";
6464
};
65+
lintGitMailMap = {
66+
enable = true;
67+
};
6568
lintMarkdown = {
6669
enable = true;
6770
targets = [ "/" ];

src/args/default.nix

+2
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@ let
1515
asContent = import ./as-content/default.nix;
1616
deployContainerImage = import ./deploy-container-image/default.nix args;
1717
fakeSha256 = lib.fakeSha256;
18+
fetchGithub = import ./fetchers/github.nix args;
1819
fetchNixpkgs = import ./fetchers/nixpkgs.nix args;
1920
fetchUrl = import ./fetchers/url.nix args;
2021
fetchZip = import ./fetchers/zip.nix args;
2122
formatBash = import ./format-bash args;
2223
formatTerraform = import ./format-terraform args;
2324
getAttr = import ./get-attr/default.nix;
2425
inherit inputs;
26+
lintGitMailMap = import ./lint-git-mailmap/default.nix args;
2527
lintTerraform = import ./lint-terraform/default.nix args;
2628
makeContainerImage = import ./make-container-image/default.nix args;
2729
makeDerivation = import ./make-derivation/default.nix args;

src/args/lint-git-mailmap/default.nix

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{ fetchGithub
2+
, makeScript
3+
, ...
4+
}:
5+
{ name
6+
, src
7+
, ...
8+
}:
9+
let
10+
mailmapLinter = fetchGithub {
11+
owner = "kamadorueda";
12+
repo = "mailmap-linter";
13+
rev = "5ae9d2654375afb76dfb3087b1e9b200257331a2";
14+
sha256 = "124pka1mf25mwlzip3fa66l73zc3x0zmba5vkd7p7c521hz9xphi";
15+
};
16+
in
17+
makeScript {
18+
entrypoint = ./entrypoint.sh;
19+
replace = {
20+
__argSrc__ = src;
21+
};
22+
name = "lint-git-mailmap-for-${name}";
23+
searchPaths = {
24+
bin = [
25+
(import mailmapLinter)
26+
];
27+
};
28+
}
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# shellcheck shell=bash
2+
3+
function main {
4+
cd '__argSrc__' \
5+
&& mailmap-linter
6+
}
7+
8+
main "${@}"

src/evaluator/modules/outputs/builtins/default.nix

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ args:
1111
(import ./hello-world/default.nix args)
1212
(import ./lint-bash/default.nix args)
1313
(import ./lint-commit-msg/default.nix args)
14+
(import ./lint-git-mailmap/default.nix args)
1415
(import ./lint-markdown/default.nix args)
1516
(import ./lint-nix/default.nix args)
1617
(import ./lint-python/default.nix args)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{ lintGitMailMap
2+
, pathImpure
3+
, ...
4+
}:
5+
{ lib
6+
, ...
7+
}:
8+
{
9+
options = {
10+
lintGitMailMap = {
11+
enable = lib.mkOption {
12+
default = false;
13+
type = lib.types.bool;
14+
};
15+
};
16+
};
17+
config = {
18+
outputs = {
19+
"/lintGitMailMap" = lintGitMailMap {
20+
name = "lint-git-mailmap";
21+
src = pathImpure "/";
22+
};
23+
};
24+
};
25+
}

0 commit comments

Comments
 (0)