You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.0 KiB
57 lines
1.0 KiB
#!/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
|
|
|