63 lines
1.4 KiB
Bash
63 lines
1.4 KiB
Bash
![]() |
#!/usr/bin/env bash
|
||
|
|
||
|
# This script print all recipe executable names to find duplicates and verify executable name conflicts
|
||
|
|
||
|
usage() {
|
||
|
echo "List executable names to find duplicates"
|
||
|
echo "Usage: $0 [-h] [-a] [-arm64 | -i686] [recipes]"
|
||
|
echo "Default architecture is x86_64, -arm64 is aarch64, -i686 is i686"
|
||
|
echo "Only duplicates are listed unless -a is specified"
|
||
|
echo "-h is this message"
|
||
|
exit
|
||
|
}
|
||
|
|
||
|
cd cookbook
|
||
|
|
||
|
recipes=""
|
||
|
|
||
|
target="x86_64-unknown-redox"
|
||
|
uniq="uniq -D --skip-fields=1"
|
||
|
|
||
|
for arg in "${@:1}"
|
||
|
do
|
||
|
if [ "$arg" == "-arm64" ]
|
||
|
then
|
||
|
target="aarch64-unknown-redox"
|
||
|
elif [ "$arg" == "-i686" ]
|
||
|
then
|
||
|
target="i686-unknown-redox"
|
||
|
elif [ "$arg" == "-a" ]
|
||
|
then
|
||
|
uniq="cat"
|
||
|
elif [ "$arg" == "-h" ]
|
||
|
then
|
||
|
usage
|
||
|
else
|
||
|
recipes+=" $arg"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
if [ -z "$recipes" ]
|
||
|
then
|
||
|
recipes="$(target/release/list_recipes)"
|
||
|
fi
|
||
|
|
||
|
for recipe in $recipes
|
||
|
do
|
||
|
if [[ "$recipe" == *\/* ]]
|
||
|
then
|
||
|
recipe_name="$(basename $recipe)"
|
||
|
recipe_path="recipes/$recipe"
|
||
|
else
|
||
|
recipe_name="$recipe"
|
||
|
recipe_path="$(target/release/find_recipe $recipe_name)"
|
||
|
fi
|
||
|
|
||
|
for command in $(find "$recipe_path/target/$target/stage/usr/bin" -type f 2> /dev/null) \
|
||
|
$(find "$recipe_path/target/$target/stage/bin" -type f 2> /dev/null)
|
||
|
do
|
||
|
shortname="$(basename $command)"
|
||
|
echo "$recipe_path $shortname"
|
||
|
done
|
||
|
done | sort | $uniq
|