redox/scripts/executables.sh

63 lines
1.4 KiB
Bash
Raw Permalink Normal View History

2024-08-15 16:54:36 +02:00
#!/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