chore: initial commit
This commit is contained in:
commit
20f4493a0d
13 changed files with 643 additions and 0 deletions
28
.editorconfig
Normal file
28
.editorconfig
Normal file
|
@ -0,0 +1,28 @@
|
|||
root = true
|
||||
["*"]
|
||||
charset = "utf-8"
|
||||
curly_bracket_next_line = true
|
||||
end_of_line = "lf"
|
||||
indent_brace_style = "K&R"
|
||||
indent_size = 4
|
||||
indent_style = "space"
|
||||
insert_final_newline = true
|
||||
max_line_length = 80
|
||||
tab_width = 4
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
["*.md"]
|
||||
max_line_length = "off"
|
||||
|
||||
["package.json"]
|
||||
indent_size = 2
|
||||
indent_style = "space"
|
||||
tab_width = 2
|
||||
|
||||
["{LICENSES/**,LICENSE}"]
|
||||
charset = "unset"
|
||||
end_of_line = "unset"
|
||||
indent_size = "unset"
|
||||
indent_style = "unset"
|
||||
insert_final_newline = "unset"
|
||||
trim_trailing_whitespace = "unset"
|
1
.envrc
Normal file
1
.envrc
Normal file
|
@ -0,0 +1 @@
|
|||
use flake || use nix
|
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
.direnv/
|
||||
|
||||
# nixago: ignore-linked-files
|
||||
/treefmt.toml
|
||||
/.prettierrc.json
|
||||
/lefthook.yml
|
||||
/.conform.yaml
|
376
flake.lock
Normal file
376
flake.lock
Normal file
|
@ -0,0 +1,376 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1653893745,
|
||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"locked": {
|
||||
"lastModified": 1653893745,
|
||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"locked": {
|
||||
"lastModified": 1653893745,
|
||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_4": {
|
||||
"locked": {
|
||||
"lastModified": 1653893745,
|
||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_5": {
|
||||
"locked": {
|
||||
"lastModified": 1653893745,
|
||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_6": {
|
||||
"locked": {
|
||||
"lastModified": 1653893745,
|
||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_7": {
|
||||
"locked": {
|
||||
"lastModified": 1653893745,
|
||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_8": {
|
||||
"locked": {
|
||||
"lastModified": 1653893745,
|
||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_9": {
|
||||
"locked": {
|
||||
"lastModified": 1653893745,
|
||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixago": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixago-exts": "nixago-exts",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1687381756,
|
||||
"narHash": "sha256-IUMIlYfrvj7Yli4H2vvyig8HEPpfCeMaE6+kBGPzFyk=",
|
||||
"owner": "jmgilman",
|
||||
"repo": "nixago",
|
||||
"rev": "dacceb10cace103b3e66552ec9719fa0d33c0dc9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "jmgilman",
|
||||
"repo": "nixago",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixago-exts": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixago": "nixago_2",
|
||||
"nixpkgs": [
|
||||
"nixago",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1676070308,
|
||||
"narHash": "sha256-QaJ65oc2l8iwQIGWUJ0EKjCeSuuCM/LqR8RauxZUUkc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago-extensions",
|
||||
"rev": "e5380cb0456f4ea3c86cf94e3039eb856bf07d0b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago-extensions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixago-exts_2": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_4",
|
||||
"nixago": "nixago_3",
|
||||
"nixpkgs": [
|
||||
"nixago",
|
||||
"nixago-exts",
|
||||
"nixago",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1655508669,
|
||||
"narHash": "sha256-BDDdo5dZQMmwNH/GNacy33nPBnCpSIydWFPZs0kkj/g=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago-extensions",
|
||||
"rev": "3022a932ce109258482ecc6568c163e8d0b426aa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago-extensions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixago-exts_3": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_6",
|
||||
"nixago": "nixago_4",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1676070308,
|
||||
"narHash": "sha256-QaJ65oc2l8iwQIGWUJ0EKjCeSuuCM/LqR8RauxZUUkc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago-extensions",
|
||||
"rev": "e5380cb0456f4ea3c86cf94e3039eb856bf07d0b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago-extensions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixago-exts_4": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_8",
|
||||
"nixago": "nixago_5",
|
||||
"nixpkgs": [
|
||||
"nixago-exts",
|
||||
"nixago",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1655508669,
|
||||
"narHash": "sha256-BDDdo5dZQMmwNH/GNacy33nPBnCpSIydWFPZs0kkj/g=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago-extensions",
|
||||
"rev": "3022a932ce109258482ecc6568c163e8d0b426aa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago-extensions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixago_2": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_3",
|
||||
"nixago-exts": "nixago-exts_2",
|
||||
"nixpkgs": [
|
||||
"nixago",
|
||||
"nixago-exts",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1676070010,
|
||||
"narHash": "sha256-iYzJIWptE1EUD8VINAg66AAMUajizg8JUYN3oBmb8no=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago",
|
||||
"rev": "d480ba6c0c16e2c5c0bd2122852d6a0c9ad1ed0e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "rename-config-data",
|
||||
"repo": "nixago",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixago_3": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_5",
|
||||
"nixpkgs": [
|
||||
"nixago",
|
||||
"nixago-exts",
|
||||
"nixago",
|
||||
"nixago-exts",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1655405483,
|
||||
"narHash": "sha256-Crd49aZWNrpczlRTOwWGfwBMsTUoG9vlHDKQC7cx264=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago",
|
||||
"rev": "e6a9566c18063db5b120e69e048d3627414e327d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixago_4": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_7",
|
||||
"nixago-exts": "nixago-exts_4",
|
||||
"nixpkgs": [
|
||||
"nixago-exts",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1676070010,
|
||||
"narHash": "sha256-iYzJIWptE1EUD8VINAg66AAMUajizg8JUYN3oBmb8no=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago",
|
||||
"rev": "d480ba6c0c16e2c5c0bd2122852d6a0c9ad1ed0e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "rename-config-data",
|
||||
"repo": "nixago",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixago_5": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_9",
|
||||
"nixpkgs": [
|
||||
"nixago-exts",
|
||||
"nixago",
|
||||
"nixago-exts",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1655405483,
|
||||
"narHash": "sha256-Crd49aZWNrpczlRTOwWGfwBMsTUoG9vlHDKQC7cx264=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago",
|
||||
"rev": "e6a9566c18063db5b120e69e048d3627414e327d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1706098335,
|
||||
"narHash": "sha256-r3dWjT8P9/Ah5m5ul4WqIWD8muj5F+/gbCdjiNVBKmU=",
|
||||
"rev": "a77ab169a83a4175169d78684ddd2e54486ac651",
|
||||
"revCount": 554858,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2311.554858%2Brev-a77ab169a83a4175169d78684ddd2e54486ac651/018d46f0-798f-71dc-a8c5-4689c46f7d12/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A.tar.gz"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixago": "nixago",
|
||||
"nixago-exts": "nixago-exts_3",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
49
flake.nix
Normal file
49
flake.nix
Normal file
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
description = "Common setup for many projects that use a variety of languages.";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/*.tar.gz";
|
||||
|
||||
nixago.url = "github:jmgilman/nixago";
|
||||
nixago.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
nixago-exts.url = "github:nix-community/nixago-extensions";
|
||||
nixago-exts.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs = inputs @ { self, nixpkgs, nixago, nixago-exts, ... }:
|
||||
let
|
||||
# Helpers for producing system-specific outputs
|
||||
supportedSystems = [ "x86_64-linux" ];
|
||||
forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f {
|
||||
inherit system;
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
});
|
||||
in
|
||||
{
|
||||
# Expose the configuration options for setup.
|
||||
nixosModules = {
|
||||
mfgames-project-setup = import ./src/modules/default.nix;
|
||||
default = self.nixosModules.mfgames-project-setup;
|
||||
};
|
||||
|
||||
# Set up the developer shell.
|
||||
# Development environments
|
||||
devShells = forEachSupportedSystem ({ system, pkgs }:
|
||||
let
|
||||
configs = import ./src/configs/default.nix { inherit system pkgs nixago nixago-exts; };
|
||||
in
|
||||
{
|
||||
# Shell
|
||||
default = pkgs.mkShell {
|
||||
shellHook = ''
|
||||
${configs.shellHook}
|
||||
lefthook install
|
||||
'';
|
||||
};
|
||||
});
|
||||
|
||||
# Formatting for the Nix files
|
||||
formatter = forEachSupportedSystem ({ pkgs, ... }: pkgs.nixpkgs-fmt);
|
||||
};
|
||||
}
|
22
src/configs/conform.nix
Normal file
22
src/configs/conform.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
inputs @ { system, nixago, nixago-exts, ... }:
|
||||
nixago-exts.conform.${system} {
|
||||
commit = {
|
||||
header = { length = 89; };
|
||||
conventional = {
|
||||
types = [
|
||||
"build"
|
||||
"chore"
|
||||
"ci"
|
||||
"docs"
|
||||
"feat"
|
||||
"fix"
|
||||
"perf"
|
||||
"refactor"
|
||||
"style"
|
||||
"test"
|
||||
];
|
||||
|
||||
scopes = [ "cli" ];
|
||||
};
|
||||
};
|
||||
}
|
9
src/configs/default.nix
Normal file
9
src/configs/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
inputs:
|
||||
inputs.nixago.lib.${inputs.system}.makeAll [
|
||||
(import ./conform.nix (inputs))
|
||||
(import ./editorconfig.nix (inputs))
|
||||
(import ./lefthook.nix (inputs))
|
||||
(import ./prettier.nix (inputs))
|
||||
#(import ./rustfmt.nix (inputs))
|
||||
(import ./treefmt.nix (inputs))
|
||||
]
|
44
src/configs/editorconfig.nix
Normal file
44
src/configs/editorconfig.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
inputs:
|
||||
let
|
||||
data = {
|
||||
root = true;
|
||||
|
||||
"*" = {
|
||||
end_of_line = "lf";
|
||||
insert_final_newline = true;
|
||||
trim_trailing_whitespace = true;
|
||||
charset = "utf-8";
|
||||
indent_style = "space";
|
||||
indent_size = 4;
|
||||
indent_brace_style = "K&R";
|
||||
max_line_length = 80;
|
||||
tab_width = 4;
|
||||
curly_bracket_next_line = true;
|
||||
};
|
||||
|
||||
"*.md" = {
|
||||
max_line_length = "off";
|
||||
};
|
||||
|
||||
"package.json" = {
|
||||
indent_style = "space";
|
||||
indent_size = 2;
|
||||
tab_width = 2;
|
||||
};
|
||||
|
||||
"{LICENSES/**,LICENSE}" = {
|
||||
end_of_line = "unset";
|
||||
insert_final_newline = "unset";
|
||||
trim_trailing_whitespace = "unset";
|
||||
charset = "unset";
|
||||
indent_style = "unset";
|
||||
indent_size = "unset";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit data;
|
||||
hook.mode = "copy";
|
||||
output = ".editorconfig";
|
||||
format = "toml";
|
||||
}
|
21
src/configs/lefthook.nix
Normal file
21
src/configs/lefthook.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
inputs @ { system, pkgs, nixago, nixago-exts, ... }:
|
||||
nixago-exts.lefthook.${system} {
|
||||
commit-msg = {
|
||||
commands = {
|
||||
# Runs conform on commit-msg hook to ensure commit messages are
|
||||
# compliant.
|
||||
conform = {
|
||||
run = "${pkgs.conform}/bin/conform enforce --commit-msg-file {1}";
|
||||
};
|
||||
};
|
||||
};
|
||||
pre-commit = {
|
||||
commands = {
|
||||
# Runs treefmt on pre-commit hook to ensure checked-in source code is
|
||||
# properly formatted.
|
||||
treefmt = {
|
||||
run = "${pkgs.treefmt}/bin/treefmt {staged_files} && git add {staged_files}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
7
src/configs/prettier.nix
Normal file
7
src/configs/prettier.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
inputs @ { system, nixago, nixago-exts, ... }:
|
||||
nixago-exts.prettier.${system} {
|
||||
data = {
|
||||
printWidth = 80;
|
||||
proseWrap = "always";
|
||||
};
|
||||
}
|
17
src/configs/rustfmt.nix
Normal file
17
src/configs/rustfmt.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
inputs:
|
||||
let
|
||||
data = {
|
||||
brace_style = "AlwaysNextLine";
|
||||
indent_style = "Block";
|
||||
reorder_imports = true;
|
||||
imports_layout = "HorizontalVertical";
|
||||
max_width = 80;
|
||||
group_imports = "StdExternalCrate";
|
||||
imports_granularity = "Module";
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit data;
|
||||
output = "rustfmt.toml";
|
||||
format = "toml";
|
||||
}
|
39
src/configs/treefmt.nix
Normal file
39
src/configs/treefmt.nix
Normal file
|
@ -0,0 +1,39 @@
|
|||
inputs @ { pkgs, ... }:
|
||||
let
|
||||
data = {
|
||||
formatter = {
|
||||
nix = {
|
||||
command = "nixpkgs-fmt";
|
||||
includes = [ "*.nix" ];
|
||||
};
|
||||
|
||||
prettier = {
|
||||
command = "${pkgs.nodePackages.prettier}/bin/prettier";
|
||||
options = [ "--write" ];
|
||||
includes = [
|
||||
"*.css"
|
||||
"*.html"
|
||||
"*.js"
|
||||
"*.json"
|
||||
"*.jsx"
|
||||
"*.md"
|
||||
"*.mdx"
|
||||
"*.scss"
|
||||
"*.ts"
|
||||
"*.yaml"
|
||||
];
|
||||
excludes = [ "**.min.js" ];
|
||||
};
|
||||
|
||||
rust = {
|
||||
command = "rustfmt";
|
||||
options = [ "--edition" "2021" ];
|
||||
includes = [ "*.rs" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit data;
|
||||
output = "treefmt.toml";
|
||||
}
|
23
src/modules/default.nix
Normal file
23
src/modules/default.nix
Normal file
|
@ -0,0 +1,23 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
cfg = config.mfgames-project-setup;
|
||||
secretType = types.submodule ({ config, ... }: {
|
||||
options = {
|
||||
rust = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
});
|
||||
in
|
||||
{
|
||||
options.mfgames-project-setup = {
|
||||
rust = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Enabling this option including tools for handling Rust projects.
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue