| #!/bin/bash -ex |
| |
| # Copyright 2016 Hewlett Packard Enterprise Development Company, L.P. |
| # |
| # 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 is intended to be run as a periodic proposal bot job |
| # in OpenStack infrastructure, though you can run it as a one-off. |
| # |
| # In order to function correctly, the environment in which the |
| # script runs must have |
| # * git |
| # * all git repos meant to be searched for plugins cloned and |
| # at the desired level of up-to-datedness |
| # * a writable doc/source directory relative to the current |
| # working directory |
| # |
| # If a file named data/devstack-plugins-registry.header or |
| # data/devstack-plugins-registry.footer is found relative to the |
| # current working directory, it will be prepended or appended to |
| # the generated reStructuredText plugins table respectively. |
| |
| ( |
| declare -A plugins |
| |
| test -r data/devstack-plugins-registry.header && cat data/devstack-plugins-registry.header |
| |
| pushd ${git_dir:-/opt/openstack} >/dev/null |
| for i in *; do |
| pushd ${i} >/dev/null |
| if output="$(git log --diff-filter=A --format='%cd' --date=short -1 -- devstack/plugin.sh)"; then |
| test -n "$output" && plugins[$i]=${output} |
| fi |
| popd >/dev/null |
| done |
| popd >/dev/null |
| |
| sorted_plugins=( $(for k in "${!plugins[@]}"; do echo "$k"; done | sort)) |
| |
| for k in "${sorted_plugins[@]}"; do |
| project=${k:0:18} |
| giturl="git://git.openstack.org/openstack/${k:0:26}" |
| pdate="${plugins[$k]}" |
| printf "|%-18s|%-60s|%-12s|\n" "${project}" "${giturl}" "${pdate}" |
| printf "+------------------+------------------------------------------------------------+------------+\n" |
| done |
| |
| test -r data/devstack-plugins-registry.footer && cat data/devstack-plugins-registry.footer |
| ) > doc/source/plugin-registry.rst |