site/flake.nix

78 lines
1.9 KiB
Nix
Raw Permalink Normal View History

2025-07-28 23:14:35 +10:00
{
2026-01-31 09:26:45 +10:00
description = "cry64's dobutterfliescry.net";
2025-07-28 23:14:35 +10:00
inputs = {
2026-01-31 09:26:45 +10:00
systems.url = "github:nix-systems/default";
2025-08-06 18:58:10 +10:00
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
2025-07-28 23:14:35 +10:00
};
2025-08-06 18:58:10 +10:00
outputs = {
2026-01-31 09:26:45 +10:00
self,
2025-08-06 18:58:10 +10:00
nixpkgs,
nixpkgs-unstable,
...
2026-01-31 09:26:45 +10:00
} @ inputs: let
systems = import inputs.systems;
mkPkgs = pkgs: system:
import pkgs {
inherit system;
allowUnfree = false;
allowBroken = false;
overlays = builtins.attrValues self.overlays or {};
};
forAllSystems = f:
nixpkgs.lib.genAttrs systems (system:
f system (mkPkgs nixpkgs system) (mkPkgs nixpkgs-unstable system));
2025-07-28 23:14:35 +10:00
in {
2026-01-31 09:26:45 +10:00
overlays.default = self: super: {
dobutterfliescry-net = super.stdenv.mkDerivation {
name = "dobutterfliescry.net";
2026-01-31 10:24:00 +10:00
src = ./.;
2026-01-31 09:26:45 +10:00
nativeBuildInputs = [super.makeWrapper];
installPhase = ''
mkdir -p $out
cp -r $src/www $out/
'';
};
};
checks = self.packages;
packages = forAllSystems (system: pkgs: upkgs: rec {
default = dobutterfliescry-net;
dobutterfliescry-net = pkgs.dobutterfliescry-net;
});
devShells = forAllSystems (system: pkgs: upkgs: let
devPackages = with pkgs; [
2025-08-06 18:58:10 +10:00
# dev local server
2026-01-31 09:26:45 +10:00
simple-http-server
2025-08-06 17:11:45 +10:00
2026-01-31 09:26:45 +10:00
# css baking
ruby.devEnv
rubyPackages_3_3.sass
2025-08-06 18:58:10 +10:00
# image baking (from .svg)
2026-01-31 09:26:45 +10:00
imagemagick
2025-08-06 18:58:10 +10:00
];
2026-01-31 09:26:45 +10:00
in {
default = pkgs.mkShell {
packages = devPackages;
shell = "${pkgs.bash}/bin/bash";
};
2025-07-28 23:14:35 +10:00
2026-01-31 09:26:45 +10:00
fhs =
(pkgs.buildFHSEnv
(pkgs.appimageTools.defaultFhsEnvArgs
// {
name = "dobutterfliescry.net-fhs";
targetPkgs = devPackages;
runScript = "bash";
extraOutputsToInstall = ["dev"];
})).env;
});
2025-07-28 23:14:35 +10:00
};
}