Merge branch 'fix/ruby-shebang' of git://github.com/samueldr/nix

This commit is contained in:
Shea Levy 2018-04-09 10:54:39 -04:00
commit 7459388448
No known key found for this signature in database
GPG key ID: 5C0BD6957D86FE27
4 changed files with 24 additions and 1 deletions

View file

@ -39,3 +39,12 @@ chmod a+rx $TEST_ROOT/shell.shebang.sh
output=$($TEST_ROOT/shell.shebang.sh abc def)
[ "$output" = "foo bar abc def" ]
# Test nix-shell shebang mode for ruby
# This uses a fake interpreter that returns the arguments passed
# This, in turn, verifies the `rc` script is valid and the `load()` script (given using `-e`) is as expected.
sed -e "s|@SHELL_PROG@|$(type -p nix-shell)|" shell.shebang.rb > $TEST_ROOT/shell.shebang.rb
chmod a+rx $TEST_ROOT/shell.shebang.rb
output=$($TEST_ROOT/shell.shebang.rb abc ruby)
[ "$output" = '-e load("'"$TEST_ROOT"'/shell.shebang.rb") -- abc ruby' ]

View file

@ -45,5 +45,12 @@ let pkgs = rec {
bash = shell;
# ruby "interpreter" that outputs "$@"
ruby = runCommand "ruby" {} ''
mkdir -p $out/bin
echo 'printf -- "$*"' > $out/bin/ruby
chmod a+rx $out/bin/ruby
'';
inherit pkgs;
}; in pkgs

7
tests/shell.shebang.rb Normal file
View file

@ -0,0 +1,7 @@
#! @SHELL_PROG@
#! ruby
#! nix-shell -I nixpkgs=shell.nix --no-substitute
#! nix-shell --pure -p ruby -i ruby
# Contents doesn't matter.
abort("This shouldn't be executed.")