upgraded dream2nix config to build node packes

This commit is contained in:
Sebastian Wendel 2023-10-31 16:35:30 +01:00
parent 3dfe4aa042
commit 36d9b9bd1c
6 changed files with 8327 additions and 187 deletions

View file

@ -1,77 +1,22 @@
{
"nodes": {
"alejandra": {
"inputs": {
"fenix": "fenix",
"flakeCompat": "flakeCompat",
"nixpkgs": [
"d2n",
"nixpkgs"
]
},
"locked": {
"lastModified": 1658427149,
"narHash": "sha256-ToD/1z/q5VHsLMrS2h96vjJoLho59eNRtknOUd19ey8=",
"owner": "kamadorueda",
"repo": "alejandra",
"rev": "f5a22afd2adfb249b4e68e0b33aa1f0fb73fb1be",
"type": "github"
},
"original": {
"owner": "kamadorueda",
"repo": "alejandra",
"type": "github"
}
},
"crane": {
"flake": false,
"locked": {
"lastModified": 1670900067,
"narHash": "sha256-VXVa+KBfukhmWizaiGiHRVX/fuk66P8dgSFfkVN4/MY=",
"lastModified": 1681175776,
"narHash": "sha256-7SsUy9114fryHAZ8p1L6G6YSu7jjz55FddEwa2U8XZc=",
"owner": "ipetkov",
"repo": "crane",
"rev": "59b31b41a589c0a65e4a1f86b0e5eac68081468b",
"rev": "445a3d222947632b5593112bb817850e8a9cf737",
"type": "github"
},
"original": {
"owner": "ipetkov",
"ref": "v0.12.1",
"repo": "crane",
"type": "github"
}
},
"d2n": {
"inputs": {
"alejandra": "alejandra",
"all-cabal-json": [
"nixpkgs"
],
"crane": "crane",
"devshell": "devshell",
"flake-parts": "flake-parts",
"flake-utils-pre-commit": "flake-utils-pre-commit",
"ghc-utils": "ghc-utils",
"gomod2nix": "gomod2nix",
"mach-nix": "mach-nix",
"nix-pypi-fetcher": "nix-pypi-fetcher",
"nixpkgs": "nixpkgs",
"poetry2nix": "poetry2nix",
"pre-commit-hooks": "pre-commit-hooks",
"pruned-racket-catalog": "pruned-racket-catalog"
},
"locked": {
"lastModified": 1676992344,
"narHash": "sha256-TEn5kEi/jL9Dt6O+ZZ7kQwnlAgEv0r4VgQZnav/cfV4=",
"owner": "nix-community",
"repo": "dream2nix",
"rev": "db72710500a80bdf4589b6807d2491a4a0dae3ad",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "dream2nix",
"type": "github"
}
},
"devshell": {
"flake": false,
"locked": {
@ -88,26 +33,57 @@
"type": "github"
}
},
"fenix": {
"dream2nix_legacy": {
"inputs": {
"nixpkgs": [
"d2n",
"alejandra",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src"
"all-cabal-json": ["nixpkgs"],
"crane": "crane",
"devshell": "devshell",
"drv-parts": "drv-parts",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"flake-utils-pre-commit": "flake-utils-pre-commit",
"ghc-utils": "ghc-utils",
"gomod2nix": "gomod2nix",
"mach-nix": "mach-nix",
"nix-pypi-fetcher": "nix-pypi-fetcher",
"nixpkgs": "nixpkgs",
"nixpkgsV1": "nixpkgsV1",
"poetry2nix": "poetry2nix",
"pre-commit-hooks": "pre-commit-hooks",
"pruned-racket-catalog": "pruned-racket-catalog"
},
"locked": {
"lastModified": 1657607339,
"narHash": "sha256-HaqoAwlbVVZH2n4P3jN2FFPMpVuhxDy1poNOR7kzODc=",
"lastModified": 1689701105,
"narHash": "sha256-LbqkAkLlKvdh/Xb9FvyKAGJbBRuTXOAq6unco/RifD4=",
"owner": "nix-community",
"repo": "fenix",
"rev": "b814c83d9e6aa5a28d0cf356ecfdafb2505ad37d",
"repo": "dream2nix",
"rev": "c9c8689f09aa95212e75f3108788862583a1cf5a",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"repo": "dream2nix",
"rev": "c9c8689f09aa95212e75f3108788862583a1cf5a",
"type": "github"
}
},
"drv-parts": {
"inputs": {
"flake-compat": ["dream2nix_legacy", "flake-compat"],
"flake-parts": ["dream2nix_legacy", "flake-parts"],
"nixpkgs": ["dream2nix_legacy", "nixpkgs"]
},
"locked": {
"lastModified": 1690881582,
"narHash": "sha256-DKJucaTOmnsJV3ZC68yzpyMb+OHWCDT9Z2fB2GPErck=",
"owner": "davhau",
"repo": "drv-parts",
"rev": "77bbde0616b445e06c8ad4621643983250e0e4f1",
"type": "github"
},
"original": {
"owner": "davhau",
"repo": "drv-parts",
"type": "github"
}
},
@ -127,12 +103,25 @@
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"d2n",
"nixpkgs"
]
"nixpkgs-lib": ["dream2nix_legacy", "nixpkgs"]
},
"locked": {
"lastModified": 1675933616,
@ -153,11 +142,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1679737941,
"narHash": "sha256-srSD9CwsVPnUMsIZ7Kt/UegkKUEBcTyU1Rev7mO45S0=",
"lastModified": 1698579227,
"narHash": "sha256-KVWjFZky+gRuWennKsbo6cWyo7c/z/VgCte5pR9pEKg=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3502ee99d6dade045bdeaf7b0cd8ec703484c25c",
"rev": "f76e870d64779109e41370848074ac4eaa1606ec",
"type": "github"
},
"original": {
@ -167,12 +156,15 @@
}
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"lastModified": 1685518550,
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
"type": "github"
},
"original": {
@ -182,12 +174,15 @@
}
},
"flake-utils-pre-commit": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1644229661,
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
@ -196,30 +191,14 @@
"type": "github"
}
},
"flakeCompat": {
"flake": false,
"locked": {
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"ghc-utils": {
"flake": false,
"locked": {
"lastModified": 1662774800,
"narHash": "sha256-1Rd2eohGUw/s1tfvkepeYpg8kCEXiIot0RijapUjAkE=",
"lastModified": 1698423858,
"narHash": "sha256-dsHQMesA0WOGBNjunMPiu1IziNYSw67gs6MV3xX+sfs=",
"ref": "refs/heads/master",
"rev": "bb3a2d3dc52ff0253fb9c2812bd7aa2da03e0fea",
"revCount": 1072,
"rev": "5dc4a548e3cc41535064cb1a386447c69fca7d59",
"revCount": 1172,
"type": "git",
"url": "https://gitlab.haskell.org/bgamari/ghc-utils"
},
@ -230,10 +209,7 @@
},
"gitignore": {
"inputs": {
"nixpkgs": [
"pre-commit",
"nixpkgs"
]
"nixpkgs": ["pre-commit", "nixpkgs"]
},
"locked": {
"lastModified": 1660459072,
@ -252,11 +228,11 @@
"gomod2nix": {
"flake": false,
"locked": {
"lastModified": 1627572165,
"narHash": "sha256-MFpwnkvQpauj799b4QTBJQFEddbD02+Ln5k92QyHOSk=",
"lastModified": 1694616124,
"narHash": "sha256-c49BVhQKw3XDRgt+y+uPAbArtgUlMXCET6VxEBmzHXE=",
"owner": "tweag",
"repo": "gomod2nix",
"rev": "67f22dd738d092c6ba88e420350ada0ed4992ae8",
"rev": "f95720e89af6165c8c0aa77f180461fe786f3c21",
"type": "github"
},
"original": {
@ -268,11 +244,11 @@
"mach-nix": {
"flake": false,
"locked": {
"lastModified": 1634711045,
"narHash": "sha256-m5A2Ty88NChLyFhXucECj6+AuiMZPHXNbw+9Kcs7F6Y=",
"lastModified": 1694857725,
"narHash": "sha256-Ob4gMVo5uiSRhdDAD6k85jy5ys7dbc/KC4DPdSZm9Rc=",
"owner": "DavHau",
"repo": "mach-nix",
"rev": "4433f74a97b94b596fa6cd9b9c0402104aceef5d",
"rev": "0fb2c80ad2a74261315939849e1e8bf4278b7178",
"type": "github"
},
"original": {
@ -282,11 +258,11 @@
},
"nix-filter": {
"locked": {
"lastModified": 1678109515,
"narHash": "sha256-C2X+qC80K2C1TOYZT8nabgo05Dw2HST/pSn6s+n6BO8=",
"lastModified": 1694857738,
"narHash": "sha256-bxxNyLHjhu0N8T3REINXQ2ZkJco0ABFPn6PIe2QUfqo=",
"owner": "numtide",
"repo": "nix-filter",
"rev": "aa9ff6ce4a7f19af6415fb3721eaa513ea6c763c",
"rev": "41fd48e00c22b4ced525af521ead8792402de0ea",
"type": "github"
},
"original": {
@ -298,11 +274,11 @@
"nix-pypi-fetcher": {
"flake": false,
"locked": {
"lastModified": 1669065297,
"narHash": "sha256-UStjXjNIuIm7SzMOWvuYWIHBkPUKQ8Id63BMJjnIDoA=",
"lastModified": 1669568973,
"narHash": "sha256-DGzSjoKAFsgZdOlFcFlnqzxPkxCAKXNvB25BsrehMn8=",
"owner": "DavHau",
"repo": "nix-pypi-fetcher",
"rev": "a9885ac6a091576b5195d547ac743d45a2a615ac",
"rev": "17f523a15e819fae41ab8a55b5f2851872e4c20b",
"type": "github"
},
"original": {
@ -329,11 +305,11 @@
"nixpkgs-lib": {
"locked": {
"dir": "lib",
"lastModified": 1675183161,
"narHash": "sha256-Zq8sNgAxDckpn7tJo7V1afRSk2eoVbu3OjI1QklGLNg=",
"lastModified": 1696019113,
"narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e1e1b192c1a5aab2960bf0a0bd53a2e8124fa18e",
"rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a",
"type": "github"
},
"original": {
@ -346,27 +322,42 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1673800717,
"narHash": "sha256-SFHraUqLSu5cC6IxTprex/nTsI81ZQAtDvlBvGDWfnA=",
"lastModified": 1685801374,
"narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2f9fd351ec37f5d479556cd48be4ca340da59b8f",
"rev": "c37ca420157f4abc31e26f436c1145f8951ff373",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.11",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgsV1": {
"locked": {
"lastModified": 1698611440,
"narHash": "sha256-jPjHjrerhYDy3q9+s5EAsuhyhuknNfowY6yt6pjn9pc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0cbe9f69c234a7700596e943bfae7ef27a31b735",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable",
"type": "indirect"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1677050843,
"narHash": "sha256-3fcFxn58eCtrXrVPeW/nAg6NR5wUERVEf8zOtjPDzuM=",
"lastModified": 1698553279,
"narHash": "sha256-T/9P8yBSLcqo/v+FTOBK+0rjzjPMctVymZydbvR/Fak=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "9e0eed654c705c7cafe192a8eba1610217f70544",
"rev": "90e85bc7c1a6fc0760a94ace129d3a1c61c3d035",
"type": "github"
},
"original": {
@ -378,16 +369,16 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1671271357,
"narHash": "sha256-xRJdLbWK4v2SewmSStYrcLa0YGJpleufl44A19XSW8k=",
"lastModified": 1689261696,
"narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "40f79f003b6377bd2f4ed4027dde1f8f922995dd",
"rev": "df1eee2aa65052a18121ed4971081576b25d6b5c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
@ -411,18 +402,18 @@
},
"pre-commit": {
"inputs": {
"flake-compat": "flake-compat",
"flake-compat": "flake-compat_2",
"flake-utils": "flake-utils",
"gitignore": "gitignore",
"nixpkgs": "nixpkgs_3",
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1676879534,
"narHash": "sha256-HU4RXcwsAX1u7AUbGOBDxkYQkeODcn+HZjXqKa1y/hk=",
"lastModified": 1698227354,
"narHash": "sha256-Fi5H9jbaQLmLw9qBi/mkR33CoFjNbobo5xWdX4tKz1Q=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "c9495f017f67a11e9c9909b032dc7762dfc853cf",
"rev": "bd38df3d508dfcdff52cd243d297f218ed2257bf",
"type": "github"
},
"original": {
@ -433,14 +424,8 @@
},
"pre-commit-hooks": {
"inputs": {
"flake-utils": [
"d2n",
"flake-utils-pre-commit"
],
"nixpkgs": [
"d2n",
"nixpkgs"
]
"flake-utils": ["dream2nix_legacy", "flake-utils-pre-commit"],
"nixpkgs": ["dream2nix_legacy", "nixpkgs"]
},
"locked": {
"lastModified": 1646153636,
@ -459,11 +444,11 @@
"pruned-racket-catalog": {
"flake": false,
"locked": {
"lastModified": 1672537287,
"narHash": "sha256-SuOvXVcLfakw18oJB/PuRMyvGyGG1+CQD3R+TGHIv44=",
"lastModified": 1696122971,
"narHash": "sha256-o8Y6RoaFq/MWCFRDcU6yfcB3Efaz7EPBTamCPkTh/Jk=",
"owner": "nix-community",
"repo": "pruned-racket-catalog",
"rev": "c8b89557fb53b36efa2ee48a769c7364df0f6262",
"rev": "65bfdf7e6c510a41f2821b61a96f81520aed6f09",
"type": "github"
},
"original": {
@ -475,27 +460,40 @@
},
"root": {
"inputs": {
"d2n": "d2n",
"dream2nix_legacy": "dream2nix_legacy",
"flake-parts": "flake-parts_2",
"nix-filter": "nix-filter",
"nixpkgs": "nixpkgs_2",
"pre-commit": "pre-commit"
}
},
"rust-analyzer-src": {
"flake": false,
"systems": {
"locked": {
"lastModified": 1657557289,
"narHash": "sha256-PRW+nUwuqNTRAEa83SfX+7g+g8nQ+2MMbasQ9nt6+UM=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "caf23f29144b371035b864a1017dbc32573ad56d",
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}

View file

@ -1,17 +1,19 @@
{
description = "nobbz.dev - Website";
description = "srx.dev - Website";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixpkgs-unstable";
d2n.url = "github:nix-community/dream2nix";
d2n.inputs.all-cabal-json.follows = "nixpkgs";
dream2nix_legacy = {
url = "github:nix-community/dream2nix/c9c8689f09aa95212e75f3108788862583a1cf5a";
inputs.all-cabal-json.follows = "nixpkgs";
};
nix-filter.url = "github:numtide/nix-filter";
flake-parts.url = "github:hercules-ci/flake-parts";
pre-commit.url = "github:cachix/pre-commit-hooks.nix";
};
outputs = {
d2n,
dream2nix_legacy,
nix-filter,
flake-parts,
pre-commit,
@ -22,29 +24,32 @@
flake-parts.lib.mkFlake {inherit inputs;} {
inherit systems;
imports = [d2n.flakeModuleBeta pre-commit.flakeModule ./nix/site.nix ./nix/hooks.nix];
imports = [
dream2nix_legacy.flakeModuleBeta
pre-commit.flakeModule
./nix/hooks.nix
./nix/package.nix
./nix/devshell.nix
];
dream2nix.config.projectRoot = ./.;
perSystem = {
self',
config,
pkgs,
self',
inputs',
system,
...
}: {
apps.serve.program = "${pkgs.writeShellScript "serve" ''
apps = {
serve.program = "${pkgs.writeShellScript "serve" ''
${pkgs.miniserve}/bin/miniserve -p 3001 --index index.html ${self'.packages.default}
''}";
packages.default = self'.packages.srx_dev;
devShells.default = pkgs.mkShell {
packages = builtins.attrValues {
inherit (pkgs) yarn;
inherit (pkgs) alejandra nil;
};
shellHook = config.pre-commit.installationScript;
packages = {
default = self'.packages.srx_dev;
};
};
};

25
nix/devshell.nix Normal file
View file

@ -0,0 +1,25 @@
{
perSystem = {
config,
pkgs,
...
}: {
devShells.default = pkgs.mkShell {
packages = with pkgs; [
yarn
yarn2nix
alejandra
nil
nodejs-18_x
nodePackages.typescript
nodePackages.typescript-language-server
vscodium
vscode-extensions.jnoortheen.nix-ide
vscode-extensions.kamadorueda.alejandra
vscode-extensions.astro-build.astro-vscode
# vscode-extensions.esbenp.prettier-vscode
];
shellHook = config.pre-commit.installationScript;
};
};
}

View file

@ -1,13 +1,21 @@
{self, ...}: {
{
perSystem = {pkgs, ...}: {
pre-commit.check.enable = true;
pre-commit.settings.hooks.nixpkgs-fmt.enable = false;
pre-commit.settings.hooks.alejandra.enable = true;
pre-commit.settings.hooks.prettier.enable = true;
pre-commit.settings.hooks.eslint.enable = true;
pre-commit.settings.hooks.eslint.pass_filenames = false;
pre-commit.settings.settings.eslint.binPath = "${pkgs.nodePackages.eslint}/bin/eslint src";
pre-commit.settings.settings.eslint.extensions = "\\.(js|ts|jsx|tsx|astro|md|mdx|cjs|ts)$";
pre-commit = {
check.enable = true;
settings = {
hooks = {
prettier.enable = true;
markdownlint.enable = true;
eslint.enable = true;
eslint.pass_filenames = false;
};
settings = {
eslint = {
binPath = "${pkgs.nodePackages.eslint}/bin/eslint src";
extensions = "\\.(js|ts|jsx|tsx|astro|md|mdx|cjs|ts)$";
};
};
};
};
};
}

59
nix/package.nix Normal file
View file

@ -0,0 +1,59 @@
{inputs, ...}: let
inherit (inputs.nix-filter.lib) filter inDirectory matchExt;
in {
perSystem = {
config,
pkgs,
inputs',
...
}: {
packages.srx_dev = let
nodeHeaders = builtins.fetchTarball {
name = "node-headers-${pkgs.nodejs.version}";
url = "https://nodejs.org/download/release/v${pkgs.nodejs.version}/node-v${pkgs.nodejs.version}-headers.tar.gz";
sha256 = "sha256:03v0598ajc2sg5ywsj94wzclry7g60jlsbpjvdk5r3fck7bm9j20";
};
in
pkgs.mkYarnPackage {
name = "srx_dev";
src = filter {
root = ./..;
include = [
(inDirectory "public")
(inDirectory "src")
(matchExt "js")
(matchExt "cjs")
(matchExt "mjs")
(matchExt "json")
(matchExt "ts")
../package.json
../yarn.lock
];
};
CI = "true";
packageJSON = ../package.json;
yarnLock = ../yarn.lock;
yarnNix = ../nix/yarn.nix;
pkgConfig = {
sharp = {
nativeBuildInputs = with pkgs; [
nodePackages.node-gyp
python3
pkg-config
];
buildInputs = with pkgs; [
vips.dev
];
postInstall = "node-gyp --node-dir=${nodeHeaders} rebuild";
};
};
postConfigure = "export HOME=$(mktemp -d)";
buildPhase = "yarn --offline build";
installPhase = "mv -v deps/srx.dev/dist \${out}";
distPhase = "true";
};
};
}

8045
nix/yarn.nix Normal file

File diff suppressed because it is too large Load diff