diff --git a/cargo-dist/templates/installer/installer.sh.j2 b/cargo-dist/templates/installer/installer.sh.j2 index 0e4f092c7..db40bf171 100644 --- a/cargo-dist/templates/installer/installer.sh.j2 +++ b/cargo-dist/templates/installer/installer.sh.j2 @@ -447,6 +447,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -651,6 +653,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/akaikatana_basic.snap b/cargo-dist/tests/snapshots/akaikatana_basic.snap index 56365086d..0ed572b4b 100644 --- a/cargo-dist/tests/snapshots/akaikatana_basic.snap +++ b/cargo-dist/tests/snapshots/akaikatana_basic.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/akaikatana_musl.snap b/cargo-dist/tests/snapshots/akaikatana_musl.snap index b27200212..6c78d6594 100644 --- a/cargo-dist/tests/snapshots/akaikatana_musl.snap +++ b/cargo-dist/tests/snapshots/akaikatana_musl.snap @@ -527,6 +527,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -702,6 +704,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/akaikatana_one_alias_among_many_binaries.snap b/cargo-dist/tests/snapshots/akaikatana_one_alias_among_many_binaries.snap index d946f4ff4..572f900e8 100644 --- a/cargo-dist/tests/snapshots/akaikatana_one_alias_among_many_binaries.snap +++ b/cargo-dist/tests/snapshots/akaikatana_one_alias_among_many_binaries.snap @@ -531,6 +531,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -706,6 +708,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/akaikatana_two_bin_aliases.snap b/cargo-dist/tests/snapshots/akaikatana_two_bin_aliases.snap index 2545a18de..c0804f832 100644 --- a/cargo-dist/tests/snapshots/akaikatana_two_bin_aliases.snap +++ b/cargo-dist/tests/snapshots/akaikatana_two_bin_aliases.snap @@ -543,6 +543,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -718,6 +720,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/akaikatana_updaters.snap b/cargo-dist/tests/snapshots/akaikatana_updaters.snap index 723af949a..4f47213b7 100644 --- a/cargo-dist/tests/snapshots/akaikatana_updaters.snap +++ b/cargo-dist/tests/snapshots/akaikatana_updaters.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_abyss.snap b/cargo-dist/tests/snapshots/axolotlsay_abyss.snap index 8e3fe39f6..ae11892ea 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_abyss.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_abyss.snap @@ -510,6 +510,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -685,6 +687,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_abyss_only.snap b/cargo-dist/tests/snapshots/axolotlsay_abyss_only.snap index c57b983cb..ed5911026 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_abyss_only.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_abyss_only.snap @@ -510,6 +510,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -685,6 +687,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_alias.snap b/cargo-dist/tests/snapshots/axolotlsay_alias.snap index 957ea76c0..f1e954bae 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_alias.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_alias.snap @@ -531,6 +531,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -706,6 +708,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_alias_ignores_missing_bins.snap b/cargo-dist/tests/snapshots/axolotlsay_alias_ignores_missing_bins.snap index 748f1c81f..c068878f8 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_alias_ignores_missing_bins.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_alias_ignores_missing_bins.snap @@ -531,6 +531,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -706,6 +708,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_basic.snap b/cargo-dist/tests/snapshots/axolotlsay_basic.snap index fe3b98a9f..4e277c173 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_basic.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_basic.snap @@ -585,6 +585,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -760,6 +762,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_basic_lies.snap b/cargo-dist/tests/snapshots/axolotlsay_basic_lies.snap index 93486a9fd..d838da681 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_basic_lies.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_basic_lies.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_build_setup_steps.snap b/cargo-dist/tests/snapshots/axolotlsay_build_setup_steps.snap index d434987f5..4a4ac23ec 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_build_setup_steps.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_build_setup_steps.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2b.snap b/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2b.snap index 99f4b69a2..d95ff9005 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2b.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2b.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2s.snap b/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2s.snap index 0cdd772ce..e520a755e 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2s.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2s.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_256.snap b/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_256.snap index 165e971cc..ef7754308 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_256.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_256.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_512.snap b/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_512.snap index 6ee5584ba..6195b5015 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_512.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_512.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_cross1.snap b/cargo-dist/tests/snapshots/axolotlsay_cross1.snap index 3d8ed4970..1213a4310 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_cross1.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_cross1.snap @@ -585,6 +585,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -760,6 +762,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_cross2.snap b/cargo-dist/tests/snapshots/axolotlsay_cross2.snap index 2e23c0927..1614a3ffa 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_cross2.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_cross2.snap @@ -449,6 +449,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -624,6 +626,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_disable_source_tarball.snap b/cargo-dist/tests/snapshots/axolotlsay_disable_source_tarball.snap index 923d3da61..d40317272 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_disable_source_tarball.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_disable_source_tarball.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_dist_url_override.snap b/cargo-dist/tests/snapshots/axolotlsay_dist_url_override.snap index ba95e6bdf..637e0cd11 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_dist_url_override.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_dist_url_override.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_edit_existing.snap b/cargo-dist/tests/snapshots/axolotlsay_edit_existing.snap index 1f4a8a511..93122dac3 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_edit_existing.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_edit_existing.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_generic_workspace_basic.snap b/cargo-dist/tests/snapshots/axolotlsay_generic_workspace_basic.snap index a8ba5db57..830daf00a 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_generic_workspace_basic.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_generic_workspace_basic.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { @@ -2458,6 +2478,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -2633,6 +2655,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_homebrew_packages.snap b/cargo-dist/tests/snapshots/axolotlsay_homebrew_packages.snap index 75838fc1e..22d6ea28e 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_homebrew_packages.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_homebrew_packages.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_musl.snap b/cargo-dist/tests/snapshots/axolotlsay_musl.snap index 5deba61ff..8849ffbd9 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_musl.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_musl.snap @@ -527,6 +527,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -702,6 +704,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_musl_no_gnu.snap b/cargo-dist/tests/snapshots/axolotlsay_musl_no_gnu.snap index 74ed2d1cc..8142809c8 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_musl_no_gnu.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_musl_no_gnu.snap @@ -507,6 +507,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -682,6 +684,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_no_homebrew_publish.snap b/cargo-dist/tests/snapshots/axolotlsay_no_homebrew_publish.snap index 089c6edd5..c90cafd82 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_no_homebrew_publish.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_no_homebrew_publish.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_several_aliases.snap b/cargo-dist/tests/snapshots/axolotlsay_several_aliases.snap index e69210619..8afddcdef 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_several_aliases.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_several_aliases.snap @@ -531,6 +531,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -706,6 +708,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign.snap b/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign.snap index b8a1d4c95..7e0b53290 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign_prod.snap b/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign_prod.snap index b8a1d4c95..7e0b53290 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign_prod.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign_prod.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_updaters.snap b/cargo-dist/tests/snapshots/axolotlsay_updaters.snap index 7ba037336..d3ba3383c 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_updaters.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_updaters.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_user_global_build_job.snap b/cargo-dist/tests/snapshots/axolotlsay_user_global_build_job.snap index 3b9a14818..f296b3fd0 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_user_global_build_job.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_user_global_build_job.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_user_host_job.snap b/cargo-dist/tests/snapshots/axolotlsay_user_host_job.snap index 7c49c27bf..0ea46a6cf 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_user_host_job.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_user_host_job.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_user_local_build_job.snap b/cargo-dist/tests/snapshots/axolotlsay_user_local_build_job.snap index f9bea277b..38f762f7e 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_user_local_build_job.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_user_local_build_job.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_user_plan_job.snap b/cargo-dist/tests/snapshots/axolotlsay_user_plan_job.snap index 72b6f7e99..fa55bf714 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_user_plan_job.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_user_plan_job.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/axolotlsay_user_publish_job.snap b/cargo-dist/tests/snapshots/axolotlsay_user_publish_job.snap index c51aaaebe..789549115 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_user_publish_job.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_user_publish_job.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/install_path_cargo_home.snap b/cargo-dist/tests/snapshots/install_path_cargo_home.snap index 5b0c86242..18e0a2553 100644 --- a/cargo-dist/tests/snapshots/install_path_cargo_home.snap +++ b/cargo-dist/tests/snapshots/install_path_cargo_home.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -694,6 +696,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/install_path_env_no_subdir.snap b/cargo-dist/tests/snapshots/install_path_env_no_subdir.snap index e6fbec260..42df007f6 100644 --- a/cargo-dist/tests/snapshots/install_path_env_no_subdir.snap +++ b/cargo-dist/tests/snapshots/install_path_env_no_subdir.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -677,6 +679,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/install_path_env_subdir.snap b/cargo-dist/tests/snapshots/install_path_env_subdir.snap index 50d15fc85..14b0228cd 100644 --- a/cargo-dist/tests/snapshots/install_path_env_subdir.snap +++ b/cargo-dist/tests/snapshots/install_path_env_subdir.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -677,6 +679,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/install_path_env_subdir_space.snap b/cargo-dist/tests/snapshots/install_path_env_subdir_space.snap index cc30d557b..f851e9237 100644 --- a/cargo-dist/tests/snapshots/install_path_env_subdir_space.snap +++ b/cargo-dist/tests/snapshots/install_path_env_subdir_space.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -677,6 +679,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/install_path_env_subdir_space_deeper.snap b/cargo-dist/tests/snapshots/install_path_env_subdir_space_deeper.snap index 5843ef962..5838ea9ee 100644 --- a/cargo-dist/tests/snapshots/install_path_env_subdir_space_deeper.snap +++ b/cargo-dist/tests/snapshots/install_path_env_subdir_space_deeper.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -677,6 +679,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/install_path_fallback_no_env_var_set.snap b/cargo-dist/tests/snapshots/install_path_fallback_no_env_var_set.snap index 31f87c47c..96e1872b6 100644 --- a/cargo-dist/tests/snapshots/install_path_fallback_no_env_var_set.snap +++ b/cargo-dist/tests/snapshots/install_path_fallback_no_env_var_set.snap @@ -520,6 +520,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -690,6 +692,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/install_path_home_subdir_deeper.snap b/cargo-dist/tests/snapshots/install_path_home_subdir_deeper.snap index 5f984c08b..249cf64f6 100644 --- a/cargo-dist/tests/snapshots/install_path_home_subdir_deeper.snap +++ b/cargo-dist/tests/snapshots/install_path_home_subdir_deeper.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -677,6 +679,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/install_path_home_subdir_min.snap b/cargo-dist/tests/snapshots/install_path_home_subdir_min.snap index 3eec7cb26..72a53f4ed 100644 --- a/cargo-dist/tests/snapshots/install_path_home_subdir_min.snap +++ b/cargo-dist/tests/snapshots/install_path_home_subdir_min.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -677,6 +679,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/install_path_home_subdir_space.snap b/cargo-dist/tests/snapshots/install_path_home_subdir_space.snap index 502140a98..1e16ebbbf 100644 --- a/cargo-dist/tests/snapshots/install_path_home_subdir_space.snap +++ b/cargo-dist/tests/snapshots/install_path_home_subdir_space.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -677,6 +679,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/install_path_home_subdir_space_deeper.snap b/cargo-dist/tests/snapshots/install_path_home_subdir_space_deeper.snap index 91eec65fe..11fa8a386 100644 --- a/cargo-dist/tests/snapshots/install_path_home_subdir_space_deeper.snap +++ b/cargo-dist/tests/snapshots/install_path_home_subdir_space_deeper.snap @@ -519,6 +519,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -677,6 +679,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() { diff --git a/cargo-dist/tests/snapshots/install_path_no_fallback_taken.snap b/cargo-dist/tests/snapshots/install_path_no_fallback_taken.snap index d8226e0c6..53b37061c 100644 --- a/cargo-dist/tests/snapshots/install_path_no_fallback_taken.snap +++ b/cargo-dist/tests/snapshots/install_path_no_fallback_taken.snap @@ -520,6 +520,8 @@ install() { local _force_install_dir # Which install layout to use - "flat" or "hierarchical" local _install_layout="unspecified" + # A list of binaries which are shadowed in the PATH + local _shadowed_bins="" # Check the newer app-specific variable before falling back # to the older generic one @@ -690,6 +692,24 @@ install() { say " source $_fish_env_script_path_expr (fish)" fi fi + + _shadowed_bins="$(check_for_shadowed_bins "$_install_dir" "$_bins")" + if [ -n "$_shadowed_bins" ]; then + say "WARNING: The following commands are shadowed by other commands in your PATH:$_shadowed_bins" + fi +} + +check_for_shadowed_bins() { + local _install_dir="$1" + local _bins="$2" + + for _bin_name in $_bins; do + if [ "$(command -v "$_bin_name")" != "$_install_dir/$_bin_name" ]; then + _shadowed_bins="$_shadowed_bins $_bin_name" + fi + done + + echo "$_shadowed_bins" } print_home_for_script() {