{
inputs = {
nixpkgs.url = "github:cachix/devenv-nixpkgs/rolling";
systems.url = "github:nix-systems/default";
devenv.url = "github:cachix/devenv";
devenv.inputs.nixpkgs.follows = "nixpkgs";
};
nixConfig = {
extra-trusted-public-keys = "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=";
extra-substituters = "https://devenv.cachix.org";
outputs = { self, nixpkgs, devenv, systems, ... } @ inputs:
let
forEachSystem = nixpkgs.lib.genAttrs (import systems);
in
packages = forEachSystem (system:
pkgs = nixpkgs.legacyPackages.${system};
images.hello = pkgs.dockerTools.buildImage {
name = "hello-docker";
config = {
Cmd = [ "${pkgs.hello}/bin/hello" ];
website = pkgs.stdenv.mkDerivation
(
# TODO: DRY
gems = pkgs.bundlerEnv {
name = "static";
gemdir = ./src;
version = "0.0.1";
name = "website";
src = ./src;
buildInputs = [
gems
gems.wrappedRuby
];
sourceRoot = "src";
buildPhase = ''
bundle exec jekyll build
'';
installPhase = ''
mkdir -p $out
cp -r _site/* $out/
}
);
devShells = forEachSystem
(system:
default = devenv.lib.mkShell {
inherit inputs pkgs;
modules = [
packages = [ gems gems.wrappedRuby ];
});