90 lines
2.5 KiB
Nix
90 lines
2.5 KiB
Nix
{
|
|
description = "Subbit.xyz : Cardano's featherweight L2";
|
|
|
|
inputs = {
|
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
git-hooks-nix.url = "github:cachix/git-hooks.nix";
|
|
git-hooks-nix.inputs.nixpkgs.follows = "nixpkgs";
|
|
treefmt-nix.url = "github:numtide/treefmt-nix";
|
|
treefmt-nix.inputs.nixpkgs.follows = "nixpkgs";
|
|
aiken.url = "github:waalge/aiken/waalge/fix-nix-build";
|
|
};
|
|
|
|
outputs = inputs @ {flake-parts, ...}:
|
|
flake-parts.lib.mkFlake {inherit inputs;}
|
|
{
|
|
imports = [
|
|
inputs.git-hooks-nix.flakeModule
|
|
inputs.treefmt-nix.flakeModule
|
|
];
|
|
systems = ["x86_64-linux" "aarch64-darwin"];
|
|
perSystem = {
|
|
config,
|
|
self',
|
|
inputs',
|
|
pkgs,
|
|
system,
|
|
...
|
|
}: {
|
|
treefmt = {
|
|
projectRootFile = "flake.nix";
|
|
flakeFormatter = true;
|
|
programs = {
|
|
prettier = {
|
|
enable = true;
|
|
settings = {
|
|
printWidth = 80;
|
|
proseWrap = "always";
|
|
};
|
|
};
|
|
alejandra.enable = true;
|
|
elm-format.enable = true;
|
|
};
|
|
};
|
|
pre-commit.settings.hooks = {
|
|
treefmt.enable = true;
|
|
aiken = {
|
|
enable = true;
|
|
name = "aiken";
|
|
description = "Run aiken's formatter on ./aik";
|
|
files = "\\.ak";
|
|
entry = "${inputs'.aiken.packages.aiken}/bin/aiken fmt ./aik";
|
|
};
|
|
};
|
|
devShells.default = let
|
|
subbit =
|
|
pkgs.writeShellScriptBin "subbit"
|
|
''
|
|
#!/usr/bin/env bash
|
|
node out/index.js $@
|
|
'';
|
|
in
|
|
pkgs.mkShell {
|
|
nativeBuildInputs = [
|
|
config.treefmt.build.wrapper
|
|
];
|
|
shellHook = ''
|
|
${config.pre-commit.installationScript}
|
|
echo 1>&2 "Welcome to the development shell!"
|
|
export alias subbit="node out/index.js "
|
|
'';
|
|
packages = [
|
|
pkgs.just
|
|
inputs'.aiken.packages.aiken
|
|
pkgs.elmPackages.elm
|
|
pkgs.elmPackages.nodejs
|
|
pkgs.elmPackages.elm-language-server
|
|
pkgs.elmPackages.elm-git-install
|
|
pkgs.uglify-js
|
|
pkgs.caddy
|
|
pkgs.pnpm
|
|
pkgs.typescript-language-server
|
|
subbit
|
|
];
|
|
};
|
|
};
|
|
flake = {};
|
|
};
|
|
}
|