chobble/shell.nix

52 lines
990 B
Nix
Raw Permalink Normal View History

2024-11-26 23:51:40 +00:00
with (import <nixpkgs> {}); let
env = bundlerEnv {
name = "YourJekyllSite";
inherit ruby;
gemfile = ./Gemfile;
lockfile = ./Gemfile.lock;
gemset = ./gemset.nix;
};
in
stdenv.mkDerivation {
2024-11-27 09:41:00 +00:00
name = "chobble-com";
2024-11-26 23:51:40 +00:00
buildInputs = [
env
ruby_3_3
rubyPackages_3_3.ffi
libffi
];
shellHook = ''
2024-11-27 09:41:00 +00:00
serve() {
${env}/bin/jekyll serve --watch &
JEKYLL_PID=$!
cleanup_serve() {
echo "Cleaning up serve process..."
kill $JEKYLL_PID 2>/dev/null
wait $JEKYLL_PID 2>/dev/null
}
trap cleanup_serve EXIT INT TERM
wait $JEKYLL_PID
cleanup_serve
trap - EXIT INT TERM
}
export -f serve
cleanup() {
echo "Cleaning up..."
rm -rf _site .jekyll-cache .jekyll-metadata
}
trap cleanup EXIT
2024-11-26 23:51:40 +00:00
2024-11-27 09:41:00 +00:00
echo "Development environment ready!"
echo "Run 'serve' to start development server"
2024-11-26 23:51:40 +00:00
'';
}