Add tool to track migration to neutron-lib

Add a tool that tracks how far off a subproject is from breaking
the dependency from neutron.

Something fun to help us ease the pain. An example output is like
the one below:

You have 229 total imports
You imported Neutron 78 times
You imported Neutron-Lib 10 times
You need to get to 100%, you are this far: 11.3600%, get on with it!

Change-Id: I1a1d89a2628587e95e339524e5593191a27fe5bf
This commit is contained in:
Armando Migliaccio 2016-07-13 12:36:30 -07:00
parent 5d74cbb5ac
commit 9dc6770fe2
1 changed files with 37 additions and 0 deletions

37
tools/migration_report.sh Executable file
View File

@ -0,0 +1,37 @@
#!/bin/bash
function count_imports() {
local module="$1"
local path="$2"
egrep -R -w "^(import|from) $module" --exclude-dir=".*tox" $your_project | wc -l
}
if [ $# -eq 0 ]; then
echo "Please specify path to your project."
exit 1
else
your_project="$1"
fi
total_imports=$(egrep -R -w "^(import|from)" --exclude-dir=".*tox" $your_project | wc -l)
neutron_imports=$(count_imports neutron $your_project)
lib_imports=$(count_imports neutron_lib $your_project)
total_neutron_related_imports=$((neutron_imports + lib_imports))
echo "You have $total_imports total imports"
echo "You imported Neutron $neutron_imports times"
echo "You imported Neutron-Lib $lib_imports times"
if [ "$lib_imports" -eq 0 ]; then
echo "Your project does not import neutron-lib once, you suck!"
fi
goal=$(bc -l <<< "scale=4; ($lib_imports/$total_neutron_related_imports*100)")
target=$(bc <<< "$goal>50")
if [ "$target" -eq 0 ]; then
echo "You need to get to 100%, you are this far: $goal%, get on with it!"
else
echo "You need to get to 100%, you are close: $goal%, good job!"
fi