diff --git a/pkgs/by-name/co/cowsay/package.nix b/pkgs/by-name/co/cowsay/package.nix index aad6eefb68e8..be3db6982fe5 100644 --- a/pkgs/by-name/co/cowsay/package.nix +++ b/pkgs/by-name/co/cowsay/package.nix @@ -33,6 +33,17 @@ stdenv.mkDerivation (finalAttrs: { postInstall = '' wrapProgram $out/bin/cowsay \ --suffix COWPATH : $out/share/cowsay/cows + + # Replace the cowthink symlink with a Perl wrapper that sets $0 correctly + # This is necessary because exec -a doesn't work for Perl scripts + rm $out/bin/cowthink + cat > $out/bin/cowthink << EOF + #!/usr/bin/env perl + \$0 = "cowthink"; + \$ENV{COWPATH} = "\$ENV{COWPATH}" . (\$ENV{COWPATH} ? ":" : "") . "$out/share/cowsay/cows"; + do "$out/bin/.cowsay-wrapped"; + EOF + chmod +x $out/bin/cowthink ''; passthru = {