
This is more for completeness, to go along "nm-code-format.sh" script. Usually it's very simple to run black directly (you may still do that). However, black by default only reformats files with ".py" extension. So to get all our python files, you'd need to know and explicitly select them... or use this script. Also, `black .` scans the entire source tree, and is rather slow. This script knows which files to select and is thus faster.
91 lines
1.9 KiB
Bash
Executable File
91 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
_print() {
|
|
printf '%s\n' "$*" >&2
|
|
}
|
|
|
|
die() {
|
|
_print "$*"
|
|
exit 1
|
|
}
|
|
|
|
NM_ROOT="$(git rev-parse --show-toplevel)" || die "not inside a git repository"
|
|
NM_PREFIX="$(git rev-parse --show-prefix)" || die "not inside a git repository"
|
|
|
|
cd "$NM_ROOT" || die "failed to cd into \$NM_ROOT\""
|
|
|
|
if [ ! -f "./src/core/main.c" ]; then
|
|
die "Error: \"$NM_ROOT\" does not look like NetworkManager source tree"
|
|
fi
|
|
|
|
BLACK="${BLACK:-black}"
|
|
|
|
if ! command -v "$BLACK" &> /dev/null; then
|
|
_print "Error: black is not installed. On RHEL/Fedora/CentOS run 'dnf install black'"
|
|
exit 77
|
|
fi
|
|
|
|
OLD_IFS="$IFS"
|
|
|
|
IFS=$'\n'
|
|
FILES=( $(git ls-tree --name-only -r HEAD | grep '\.py$') )
|
|
IFS="$OLD_IFS"
|
|
FILES+=(
|
|
"examples/python/gi/nm-wg-set"
|
|
)
|
|
|
|
usage() {
|
|
printf "Usage: %s [OPTION]...\n" "$(basename "$0")"
|
|
printf "Reformat python source files using python black.\n\n"
|
|
printf "OPTIONS:\n"
|
|
printf " -i Reformat files (this is the default)\n"
|
|
printf " -n|--dry-run|--check Only check the files (contrary to \"-i\")\n"
|
|
printf " --show-filenames Only print the filenames that would be checked/formatted\n"
|
|
printf " -h Print this help message\n"
|
|
}
|
|
|
|
TEST_ONLY=0
|
|
SHOW_FILENAMES=0
|
|
|
|
while (( $# )); do
|
|
case "$1" in
|
|
-h)
|
|
usage
|
|
exit 0
|
|
;;
|
|
-n|--dry-run|--check)
|
|
TEST_ONLY=1
|
|
shift
|
|
continue
|
|
;;
|
|
-i)
|
|
TEST_ONLY=0
|
|
shift
|
|
continue
|
|
;;
|
|
--show-filenames)
|
|
SHOW_FILENAMES=1
|
|
shift
|
|
continue
|
|
;;
|
|
*)
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ $SHOW_FILENAMES = 1 ]; then
|
|
printf '%s\n' "${FILES[@]}"
|
|
exit 0
|
|
fi
|
|
|
|
EXTRA_ARGS=()
|
|
if [ $TEST_ONLY = 1 ]; then
|
|
EXTRA_ARGS+=('--check')
|
|
fi
|
|
|
|
"$BLACK" "${EXTRA_ARGS[@]}" "${FILES[@]}"
|