linphone-desktop/tools/check_qml_syntax
2017-06-14 18:05:18 +02:00

52 lines
1.2 KiB
Bash
Executable file

#!/usr/bin/env bash
# ==============================================================================
# Tool to check the syntax of `.qml`/`.js` files.
# ==============================================================================
RESOURCES_FILE='resources.qrc'
LINTER=qmllint
RED='\e[1;31m'
GREEN='\e[1;32m'
BLUE='\e[1;34m'
NC='\e[0m'
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd $SCRIPT_DIR/..
# ==============================================================================
if ! [ -x "$( command -v "$LINTER" )" ]; then
printf "${RED}Unable to found `$LINTER`. No tests can be executed.${NC}\n"
exit 0
fi
"${LINTER}" -v
if [[ $? != 0 ]] ; then
printf "${RED}Unable to check qml syntax.${NC}\n"
exit 0
fi
printf "${BLUE}Checking qml files...${NC}\n"
so_far_so_good=0
while read line
do
result=$(
printf "$line" |
sed -n 's/^\s*<\s*file\s*>\s*\(.*\.\(qml\|js\)\)\s*<\s*\/\s*file\s*>\s*$/\1/p'
)
if [[ ! -z $result ]] && ! $LINTER "$result"; then
so_far_so_good=1
fi
done < $RESOURCES_FILE
if [[ $so_far_so_good == 0 ]]; then
printf "${GREEN}Done. No qml error found.\n"
else
printf "${RED}One or more errors were found. Please to fix them.\n"
fi
printf "${NC}"
exit $so_far_so_good