Patrick Shaw 6e78dcb7dc
fix: Allow portable bash paths for systems including NixOS (#23889)
Although very common, bash is not guaranteed to be located at
`/bin/bash`. NixOS is an example of this.

More commonly, `/bin/bash` can be quite out of date. An example of this
is MacOS's version of `bash`. This realistically won't affect Playwright
but it's worth noting. You can technically update MacOS's system version
of bash but you need elevated permissions to do so.

By using `/usr/bin/env bash` instead of `/bin/bash` we can execute
Playwright's bash scripts in like NixOS and generally improve the
selection behaviour for bash in other systems too.

Some discussion of why it's worth favouring `/usr/bin/env bash` over
`/bin/bash`:
- Discusses `/bin/bash` missing in NixOS:
https://discourse.nixos.org/t/add-bin-bash-to-avoid-unnecessary-pain/5673
- Some general commentary on why `/usr/bin/env bash` is favoured:
https://askubuntu.com/a/1402721
- Points out how old bash is in MacOS:
https://itnext.io/upgrading-bash-on-macos-7138bd1066ba

Improves situation at #5501
2023-07-03 06:27:06 -07:00
..

Tool for printing .exe and .dll dependencies on Windows

This is similar to ldd on linux in that loads specified files and tries to resolve all DLLs referenced by it, printing in the formar <lib name> => <full path> | "no found" To minimize dependencies we link all C runtime libraries statically, there is still one dynamic dependency on dbghelp.dll which is supposed to be preinstalled on all Windows machines.

Build instructions

Open PrintDeps.sln solution in Visual Studio 2019 and build x64/Release configuration. We currently commit output binary into bin/PrintDeps.exe and bundle it in every npm.