view scripts/exec-all-projects.sh @ 199:ab47ca9899ea

DEP-12: update training db scripts
author smith@nwoca.org
date Mon, 25 Sep 2017 21:50:52 +0100
parents fea886ba7279
children f6bea554980e
line wrap: on
line source
#!/bin/bash
# Scans for docker projects in specified parent path and
# executes the specified command.
#
# The first parameter specifices theparent directory to search for 
# docker-compose.yml # files must be specified.  #
# 
# the second paramter specifies the command to execute against each
# compose project.
#
# examples:
#
#   /ssdt/scripts/exec-all-projects.sh /data/pilot docker-compose ps
# 
#     executes "docker-compose ps" against all projects under /data/pilot
#
#   /ssdt/scripts/exec-all-projects.sh /data/pilot /ssdt/ /ssdt/scripts/backup-usas.sh
#
#     runs backup-usas.sh script against all projects under /data/pilot
#
#   /ssdt/scripts/exec-all-projects.sh /data/pilot "/ssdt/scripts/capture.sh | /ssdt/scripts/send.sh -"
#
#       captures the log files from all containers and sends one long file per project 
#       to the SSDT support server.
#
#
##

source "${SSDT_SCRIPTS:-$(dirname "${BASH_SOURCE[0]}")}/.functions.sh"

: ${1?"Usage: {parent path} [command]"}

ORIGINALDIR=$PWD
PARENTDIR=$1

shift
COMMAND=$@

for f in $(find $PARENTDIR -name docker-compose.yml)
do
   projectdir=`dirname $f`
   project=`basename $projectdir`
   cd $projectdir
   echo -e "----\n$executing $COMMAND on $project \n----"      

   bash -c "${COMMAND}"
   echo ""

done

cd $ORIGINALDIR