Add a tool do dump requirements and constraints for all branches

Often it's helpful to quickly compare the requirements and constraints
for a given library on all branches.  This tool does that.

Change-Id: I2458c5929d8812cd74f657050eea5f4f3fa11df0
This commit is contained in:
Tony Breeds 2016-11-16 11:55:47 +11:00
parent 5bd1b83705
commit e699ece94c

45
tools/grep-all.sh Executable file
View File

@ -0,0 +1,45 @@
#!/usr/bin/env bash
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# This script, when run from the root directory of this repository, will
# search the default and feature branches of all projects listed in the
# projects.txt file for declared dependencies, then output a list of any
# entries in the global-requirements.txt file which are not actual
# dependencies of those projects. Old dependencies which were removed
# from projects or which were used only for projects which have since
# been removed should be cleaned up, but many entries likely represent
# recent additions which still have pending changes to add them to one
# or more projects. In most cases, git pickaxe will yield the answer.
# Note(tonyb): Expand HEAD into something that's hopefully more human
# readable
declare -a branches=($(git describe --always) origin/master
origin/stable/newton
origin/stable/mitaka
origin/stable/liberty
)
function search() {
git grep -Ei "^${1}" ${2} -- "${3}" | cut -d: -f4-
}
printf '\nRequirements\n'
for branch in ${branches[@]} ; do
printf "%-22s: %s\n" $branch "$(search $1 $branch global-requirements.txt)"
done
printf '\nConstraints\n'
for branch in ${branches[@]} ; do
printf "%-22s: %s\n" $branch "$(search $1 $branch upper-constraints.txt)"
done