mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-10-14 20:18:39 +00:00
contrib: add "nm-python-black-format.sh" script
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.
This commit is contained in:
parent
670894b667
commit
49b0a92b5a
90
contrib/scripts/nm-python-black-format.sh
Executable file
90
contrib/scripts/nm-python-black-format.sh
Executable file
|
@ -0,0 +1,90 @@
|
|||
#!/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[@]}"
|
Loading…
Reference in a new issue