74 lines
1.9 KiB
Nix
74 lines
1.9 KiB
Nix
{
|
|
description = "Taiga a frontend tester";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
|
treefmt-nix.url = "github:numtide/treefmt-nix";
|
|
};
|
|
|
|
outputs =
|
|
{ nixpkgs, ... }@inputs:
|
|
let
|
|
supportedSystems = [ "x86_64-linux" ];
|
|
pkgsFor =
|
|
system:
|
|
nixpkgs.legacyPackages.${system}.extend (
|
|
nixpkgs.lib.composeManyExtensions [ ]
|
|
# nixpkgs.lib.composeManyExtensions ([ ] ++ builtins.attrValues self.overlays)
|
|
);
|
|
eachSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f (pkgsFor system));
|
|
|
|
treefmtEval = eachSystem (pkgs: inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix);
|
|
|
|
packageSetFor =
|
|
pkgs:
|
|
let
|
|
npmDeps = pkgs.importNpmLock.buildNodeModules {
|
|
npmRoot = ./.;
|
|
nodejs = pkgs.nodejs;
|
|
};
|
|
npmPackage = pkgs.buildNpmPackage {
|
|
pname = "taiga";
|
|
version = "0.1.0";
|
|
src = ./.;
|
|
inherit npmDeps;
|
|
npmConfigHook = pkgs.importNpmLock.npmConfigHook;
|
|
};
|
|
in
|
|
{
|
|
inherit npmDeps;
|
|
inherit npmPackage;
|
|
};
|
|
in
|
|
{
|
|
# nix fmt formatter
|
|
formatter = eachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
|
|
|
|
packages = eachSystem (pkgs: packageSetFor pkgs);
|
|
|
|
# default devshell
|
|
devShells = eachSystem (pkgs: {
|
|
default = pkgs.mkShell {
|
|
packages = with pkgs; [
|
|
importNpmLock.hooks.linkNodeModulesHook
|
|
nodejs
|
|
just
|
|
svelte-language-server
|
|
];
|
|
|
|
npmDeps = pkgs.importNpmLock.buildNodeModules {
|
|
npmRoot = ./.;
|
|
nodejs = pkgs.nodejs;
|
|
};
|
|
|
|
# Will be executed before entering the shell
|
|
# or running a command
|
|
shellHook = ''
|
|
linkNodeModulesHook
|
|
echo "Dev env ready"
|
|
'';
|
|
};
|
|
});
|
|
};
|
|
}
|