forked from Fediversity/Fediversity
Optionally remove .pub
suffix from file names
This commit is contained in:
parent
9407af8ac8
commit
377ad0ea6e
|
@ -1,14 +1,30 @@
|
|||
let
|
||||
inherit (builtins)
|
||||
attrValues
|
||||
elemAt
|
||||
foldl'
|
||||
mapAttrs
|
||||
match
|
||||
readDir
|
||||
readFile
|
||||
;
|
||||
## `mergeAttrs` and `concatMapAttrs` are in `lib.trivial` and `lib.attrsets`,
|
||||
## but we would rather avoid a dependency in nixpkgs for this file.
|
||||
mergeAttrs = x: y: x // y;
|
||||
concatMapAttrs = f: v: foldl' mergeAttrs { } (attrValues (mapAttrs f v));
|
||||
removePubSuffix =
|
||||
s:
|
||||
let
|
||||
maybeMatch = match "(.*)\.pub" s;
|
||||
in
|
||||
if maybeMatch == null then s else elemAt maybeMatch 0;
|
||||
removeTrailingWhitespace = s: elemAt (match "(.*[^[:space:]])[[:space:]]*" s) 0;
|
||||
|
||||
collectKeys =
|
||||
dir: mapAttrs (name: _: removeTrailingWhitespace (readFile (dir + "/${name}"))) (readDir dir);
|
||||
dir:
|
||||
concatMapAttrs (name: _: {
|
||||
"${removePubSuffix name}" = removeTrailingWhitespace (readFile (dir + "/${name}"));
|
||||
}) (readDir dir);
|
||||
in
|
||||
{
|
||||
contributors = collectKeys ./contributors;
|
||||
|
|
Loading…
Reference in a new issue