mirror of https://github.com/ArduPilot/ardupilot
58 lines
1.0 KiB
Bash
58 lines
1.0 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
usage() {
|
||
|
cat >&$1 <<EOF
|
||
|
Usage: $0 [OPTIONS]
|
||
|
|
||
|
Read a list of files relative to ardupilot's root directory and output the
|
||
|
non-libraries subsystems they belong to.
|
||
|
|
||
|
Options:
|
||
|
--show-paths, -p Print also file paths after the library name.
|
||
|
--help, -h Show this help message.
|
||
|
EOF
|
||
|
}
|
||
|
|
||
|
show_paths=false
|
||
|
|
||
|
while [[ -n $1 ]]; do
|
||
|
case "$1" in
|
||
|
--show-paths|-p)
|
||
|
show_paths=true
|
||
|
;;
|
||
|
--help|-h)
|
||
|
usage 1
|
||
|
exit 0
|
||
|
;;
|
||
|
*)
|
||
|
usage 2
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
shift
|
||
|
done
|
||
|
|
||
|
SCRIPT_DIR=$(dirname $(realpath ${BASH_SOURCE[0]}))
|
||
|
ROOT=$(dirname $(git -C $SCRIPT_DIR rev-parse --git-dir))
|
||
|
|
||
|
if $show_paths; then
|
||
|
sedcmd="s,\([^/]\+\).*,\1\t\0,"
|
||
|
else
|
||
|
sedcmd="s,\([^/]\+\).*,\1,"
|
||
|
fi
|
||
|
|
||
|
grep -v "^libraries" | \
|
||
|
sed $sedcmd | \
|
||
|
sort | \
|
||
|
uniq | \
|
||
|
if $show_paths; then
|
||
|
while read d f; do
|
||
|
[[ -d "$ROOT/$d" ]] && printf "%s\t%s\n" "$d" "$f"
|
||
|
done
|
||
|
else
|
||
|
while read d; do
|
||
|
[[ -d "$ROOT/$d" ]] && echo "$d"
|
||
|
done
|
||
|
fi
|