Compare commits
2 commits
9201edf945
...
13fb093d33
| Author | SHA1 | Date | |
|---|---|---|---|
| 13fb093d33 | |||
| 9b96ed7a25 |
2 changed files with 19 additions and 11 deletions
|
|
@ -32,7 +32,7 @@ this is just the name of the programming language you want to use; the
|
||||||
repository will pick a recommended default template for that language.
|
repository will pick a recommended default template for that language.
|
||||||
|
|
||||||
If you want more control over the generated repository, you may select a
|
If you want more control over the generated repository, you may select a
|
||||||
specific template instead. Templates names are organized by underscore-separated
|
specific template instead. Template names are made of underscore (`_`) separated
|
||||||
*fields*; the number of fields may very depending on the language, but typically
|
*fields*; the number of fields may very depending on the language, but typically
|
||||||
there are three or four:
|
there are three or four:
|
||||||
|
|
||||||
|
|
|
||||||
28
flake.nix
28
flake.nix
|
|
@ -6,6 +6,15 @@
|
||||||
concatMapAttrs = func: attr:
|
concatMapAttrs = func: attr:
|
||||||
foldl' (x: y: x // y) {} (map func attr);
|
foldl' (x: y: x // y) {} (map func attr);
|
||||||
|
|
||||||
|
# Display names of languages for template descriptions
|
||||||
|
display-names = {
|
||||||
|
bash = "Bash";
|
||||||
|
fish = "Fish";
|
||||||
|
c = "C";
|
||||||
|
python = "Python";
|
||||||
|
rust = "Rust";
|
||||||
|
};
|
||||||
|
|
||||||
# Template Aliases
|
# Template Aliases
|
||||||
# Used to pick default template for each language
|
# Used to pick default template for each language
|
||||||
aliases = {
|
aliases = {
|
||||||
|
|
@ -33,19 +42,18 @@
|
||||||
map (l: [ subd ] ++ l) (flakeSubdirs /${dir}/${subd}))
|
map (l: [ subd ] ++ l) (flakeSubdirs /${dir}/${subd}))
|
||||||
(subdirs dir);
|
(subdirs dir);
|
||||||
|
|
||||||
generateDesc = subds:
|
generateDesc = fields:
|
||||||
"${head subds} template - ${concatStringsSep ", " (tail subds)}";
|
let
|
||||||
|
lang = head fields;
|
||||||
|
in "${display-names.${lang} or lang} template (${concatStringsSep ", " (tail fields)})";
|
||||||
in {
|
in {
|
||||||
templates = concatMapAttrs (subds: {
|
templates = concatMapAttrs (fields: {
|
||||||
${concatStringsSep "_" subds} = {
|
${concatStringsSep "_" fields} = {
|
||||||
description = generateDesc subds;
|
description = generateDesc fields;
|
||||||
path = filterSource
|
path = filterSource
|
||||||
(p: _: !(elem (baseNameOf p) template-ignore))
|
(p: _: !(elem (baseNameOf p) template-ignore))
|
||||||
(foldl' (dir: subd: /${dir}/${subd}) ./. subds);
|
(foldl' (dir: subd: /${dir}/${subd}) ./. fields);
|
||||||
};
|
};
|
||||||
}) (flakeSubdirs ./.) // mapAttrs (from: to:
|
}) (flakeSubdirs ./.) // mapAttrs (from: to: self.templates.${to}) aliases;
|
||||||
self.templates.${to} // {
|
|
||||||
description = generateDesc (filter (p: p != []) (split "_" to));
|
|
||||||
}) aliases;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue