mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2025-01-06 04:24:28 +03:00
jekyll: Improve the "jekyll new" experience
See https://github.com/NixOS/nixpkgs/issues/58126 for more details. This will instruct the user how to manually finish the setup instead of failing with error messages (unfortunately it is quite a bit hacky though...). Extra note: We cannot use "bundle config --local" due to BUNDLE_GEMFILE (would attempt to create .bundle/config in the Nix store) and manually creating .bundle/config doesn't work either as these configuration variables are still overwritten by the environment variables, even though this shouldn't be the case [0]. [0]: https://bundler.io/v2.0/man/bundle-config.1.html
This commit is contained in:
parent
67ea4fcd3b
commit
d24aefd52f
@ -1,8 +1,27 @@
|
||||
{ lib, bundlerApp, ruby
|
||||
, writeShellScriptBin, makeWrapper
|
||||
, withOptionalDependencies ? false
|
||||
}:
|
||||
|
||||
bundlerApp rec {
|
||||
let
|
||||
rubyWrapper = writeShellScriptBin "ruby" ''
|
||||
if [[ "$#" -eq 2 ]]; then
|
||||
if [[ "''${1##*/}" == "bundle" && "$2" == "install" ]]; then
|
||||
# See https://github.com/NixOS/nixpkgs/issues/58126 for more details.
|
||||
echo 'Skipping "bundle install" as it fails due to the Nix wrapper.'
|
||||
echo 'Please enter the new directory and run the following commands to serve the page:'
|
||||
echo 'nix-shell -p bundler --run "bundle install --gemfile=Gemfile --path vendor/cache"'
|
||||
echo 'nix-shell -p bundler --run "bundle exec jekyll serve"'
|
||||
exit 0
|
||||
# The following nearly works:
|
||||
unset BUNDLE_FROZEN
|
||||
exec ${ruby}/bin/ruby "$@" --gemfile=Gemfile --path=vendor/cache
|
||||
fi
|
||||
fi
|
||||
# Else: Don't modify the arguments:
|
||||
exec ${ruby}/bin/ruby "$@"
|
||||
'';
|
||||
in bundlerApp rec {
|
||||
pname = "jekyll";
|
||||
exes = [ "jekyll" ];
|
||||
|
||||
@ -11,6 +30,12 @@ bundlerApp rec {
|
||||
then ./full
|
||||
else ./basic;
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/jekyll --prefix PATH : ${rubyWrapper}/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A blog-aware, static site generator, written in Ruby";
|
||||
longDescription = ''
|
||||
|
Loading…
Reference in New Issue
Block a user