116 lines
3.1 KiB
Nix
116 lines
3.1 KiB
Nix
{
|
|
description = "Fizz.buzz homepage";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
natter = {
|
|
url = "git+https://code.fizz.buzz/talexander/natter.git";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
organic_ast_explorer = {
|
|
url = "git+https://code.fizz.buzz/talexander/organic_ast_explorer.git";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
self,
|
|
nixpkgs,
|
|
natter,
|
|
organic_ast_explorer,
|
|
}:
|
|
let
|
|
forAllSystems =
|
|
func:
|
|
builtins.listToAttrs (
|
|
map (system: {
|
|
name = system;
|
|
value = func system;
|
|
}) nixpkgs.lib.systems.flakeExposed
|
|
);
|
|
in
|
|
{
|
|
devShells = forAllSystems (
|
|
system:
|
|
let
|
|
overlays = [
|
|
natter.overlays.default
|
|
organic_ast_explorer.overlays.default
|
|
];
|
|
pkgs = import nixpkgs {
|
|
inherit system overlays;
|
|
};
|
|
in
|
|
{
|
|
default = pkgs.mkShell {
|
|
nativeBuildInputs = [
|
|
];
|
|
buildInputs = with pkgs; [
|
|
pkgs.natter.release
|
|
];
|
|
};
|
|
}
|
|
);
|
|
packages = forAllSystems (
|
|
system:
|
|
let
|
|
overlays = [
|
|
natter.overlays.default
|
|
organic_ast_explorer.overlays.default
|
|
];
|
|
pkgs = import nixpkgs {
|
|
inherit system overlays;
|
|
};
|
|
appliedOverlay = self.overlays.default pkgs pkgs;
|
|
nginx_conf = pkgs.replaceVars "${./docker/server/nginx.conf}" {
|
|
web_root = appliedOverlay.homepage.release;
|
|
mime_types = "${pkgs.nginx}/conf/mime.types";
|
|
headers_include = "${./docker/server/headers.include}";
|
|
};
|
|
in
|
|
rec {
|
|
default = release;
|
|
inherit (appliedOverlay.homepage)
|
|
release
|
|
;
|
|
docker_env = pkgs.stdenv.mkDerivation {
|
|
pname = "homepage-docker-env";
|
|
version = "0.0.0";
|
|
|
|
dontUnpack = true;
|
|
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
cp ${nginx_conf} $out/nginx.conf
|
|
ln -sf ${pkgs.nginx}/bin/nginx $out/nginx
|
|
'';
|
|
};
|
|
}
|
|
);
|
|
overlays.default = final: prev: {
|
|
homepage = final.lib.makeScope final.newScope (
|
|
homepageScope:
|
|
let
|
|
homepage_private = fetchGit {
|
|
url = "git@code.fizz.buzz:talexander/homepage_private.git";
|
|
ref = "main";
|
|
rev = "89ba9628bf3e596345bc83f59cef5a2943584894";
|
|
};
|
|
natter' = (natter.overlays.default final final).natter.release;
|
|
organic_ast_explorer' =
|
|
(organic_ast_explorer.overlays.default final final).organic_ast_explorer.release;
|
|
release = homepageScope.callPackage ./nix/package.nix {
|
|
natter = natter';
|
|
organic_ast_explorer = organic_ast_explorer';
|
|
inherit homepage_private;
|
|
};
|
|
in
|
|
{
|
|
inherit release;
|
|
}
|
|
);
|
|
};
|
|
};
|
|
}
|