Commit 1b152baa authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Linting only modified YANG files

parent 300bffe5
Loading
Loading
Loading
Loading
+32 −4
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ if [ -f "$LOGFILE" ] ; then
	rm "$LOGFILE"
fi

echo "------ Validating all YANG, JSON and XML files ------"
echo "------ Linting modified YANG files ------"
# If there are no YANG, JSON or XML files, then simply exit
ls | grep -q 'yang'
found_data_models=$?
@@ -28,11 +28,39 @@ fi
echo "------ pyYANG Version ------"
docker run --rm -v $(pwd)/yang-models:/yang "${DOCKER_IMG}" pyang --version

echo "------ Linting all YANG files ------"
echo "------ Linting modified YANG files ------"
#  Display all  errors and warnings to the user. Errors are allowed.
docker pull -q "${DOCKER_IMG}"
docker run --rm -v $(pwd)/yang-models:/yang "${DOCKER_IMG}" "/bin/sh" -c 'pyang --3gpp -p external-yams _3gpp-*.yang' 2>>$LOGFILE >>$LOGFILE
# Linting only yang files that have changed in last commit
files_changed=`git log --raw -n 1 |grep "^:.*yang-models/.*yang"| cut -d '/' -f 2`
echo $files_changed
external_files_changed=`git log --raw -n 1 |grep "^:.*yang-models/external-yams/.*yang"| cut -d '/' -f 2`
echo $external_files_modified
mkdir changed-yang-models
mkdir changed-yang-models/external-yams
if [ $files_changed ] ; then
        cd yang-models
        cp $files_changed ../changed-yang-models/
        cd ..
fi

if [ $external_files_changed ] ; then
        cd yang-models/external-yams
        cp $external_files_changed ../changed-yang-models/external-yams
        cd ../..
fi

if [ $files_changed ] || [ $external_files_changed ] ; then
	docker run --rm -v $(pwd)/changed-yang-models:/yang "${DOCKER_IMG}" "/bin/sh" -c 'pyang --3gpp -p external-yams _3gpp-*.yang' 2>>$LOGFILE >>$LOGFILE
	ret=$?        
else
    echo "-- No YANG files modified."
    exit 0
fi

#Validate all yang files
#docker run --rm -v $(pwd)/yang-models:/yang "${DOCKER_IMG}" "/bin/sh" -c 'pyang --3gpp -p external-yams _3gpp-*.yang' 2>>$LOGFILE >>$LOGFILE
#ret=$?

echo "Output of Linting commad saved to $LOGFILE."

+2 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ if [ -f "$LOGFILE" ] ; then
	rm "$LOGFILE"
fi

echo "------ Validating all YANG, JSON and XML files ------"
echo "------ Validating modified YANG files ------"
# If there are no YANG, JSON or XML files, then simply exit
ls | grep -q 'yang'
found_data_models=$?
@@ -27,6 +27,7 @@ fi

# This must run error-free and must display all warnings to the user
docker pull -q "${DOCKER_IMG}"
#Validate all yang files
docker run --rm -v $(pwd)/yang-models:/yang "${DOCKER_IMG}" "/bin/sh" -c 'pyang --strict -p external-yams _3gpp-*.yang' 2>>$LOGFILE >>$LOGFILE
ret=$?