mirror of
https://gitlab.com/upRootNutrition/dotfiles.git
synced 2025-12-06 21:17:14 -06:00
chore: init
This commit is contained in:
commit
1b2c1ea359
891 changed files with 37053 additions and 0 deletions
97
templates/website/flake.nix
Executable file
97
templates/website/flake.nix
Executable file
|
|
@ -0,0 +1,97 @@
|
|||
{
|
||||
description = "Website Environment";
|
||||
|
||||
inputs = {
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
treefmt-nix.url = "github:numtide/treefmt-nix";
|
||||
mkElmDerivation.url = "github:jeslie0/mkElmDerivation";
|
||||
};
|
||||
|
||||
outputs =
|
||||
inputs:
|
||||
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
||||
imports = [ inputs.treefmt-nix.flakeModule ];
|
||||
|
||||
perSystem =
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
hp = pkgs.haskellPackages;
|
||||
backend = hp.callCabal2nix "backend" ./backend { };
|
||||
in
|
||||
{
|
||||
devShells.default = hp.shellFor {
|
||||
nativeBuildInputs = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
nil
|
||||
stylish-haskell
|
||||
ghc
|
||||
vscode-langservers-extracted
|
||||
nixfmt
|
||||
;
|
||||
inherit (hp)
|
||||
cabal-install
|
||||
cabal-gild
|
||||
haskell-language-server
|
||||
hlint
|
||||
fourmolu
|
||||
;
|
||||
inherit (inputs.nixpkgs-stable.legacyPackages.${pkgs.system}.elmPackages)
|
||||
elm
|
||||
elm-format
|
||||
elm-land
|
||||
elm-language-server
|
||||
elm-review
|
||||
elm-test
|
||||
;
|
||||
};
|
||||
packages = _: [ backend ];
|
||||
};
|
||||
|
||||
packages =
|
||||
let
|
||||
pkgs' = pkgs.extend inputs.mkElmDerivation.overlays.mkElmDerivation;
|
||||
in
|
||||
{
|
||||
websiteBackend = backend;
|
||||
|
||||
websiteFrontend = pkgs'.mkElmDerivation {
|
||||
name = "website";
|
||||
src = ./frontend;
|
||||
nativeBuildInputs = builtins.attrValues {
|
||||
inherit (inputs.nixpkgs-stable.legacyPackages.${pkgs.system}.elmPackages)
|
||||
elm
|
||||
elm-land
|
||||
;
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
${lib.getExe pkgs'.elm-land} build
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out"
|
||||
cp -r dist/* "$out/"
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
treefmt = {
|
||||
programs = {
|
||||
cabal-fmt.enable = true;
|
||||
deadnix.enable = true;
|
||||
hlint.enable = true;
|
||||
nixfmt.enable = true;
|
||||
fourmolu.enable = true;
|
||||
statix.enable = true;
|
||||
typstyle.enable = true;
|
||||
yamlfmt.enable = true;
|
||||
};
|
||||
backendRootFile = "flake.nix";
|
||||
};
|
||||
};
|
||||
|
||||
systems = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue