Browse Source

Tools: gittools: add scripts that list subsystems

Those scripts print a list of subsystems (first level folders and libraries).
They are useful for other future tools.
master
Gustavo Jose de Sousa 10 years ago committed by Andrew Tridgell
parent
commit
c2a940ddea
  1. 45
      Tools/gittools/path-libraries.sh
  2. 57
      Tools/gittools/path-nonlibraries.sh

45
Tools/gittools/path-libraries.sh

@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
#!/bin/bash
usage() {
cat >&$1 <<EOF
Usage: $0 [OPTIONS]
Read a list of files relative to ardupilot's root directory and output the
libraries 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
if $show_paths; then
sedcmd="s,libraries/\([^/]\+\).*,\1\t\0,"
else
sedcmd="s,libraries/\([^/]\+\).*,\1,"
fi
grep "^libraries/[^\/]\+" | \
sed $sedcmd | \
sort | \
uniq

57
Tools/gittools/path-nonlibraries.sh

@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
#!/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
Loading…
Cancel
Save