#!/bin/bash # This script does a one-shot creation of screenshots, creating needed # docker containers and removing them afterwards. During development, # it might be desirable to avoid the overhead for starting and # stopping the containers. Developers are encouraged to manage # suitable containers themselves, calling the screenshotter.js script # directly. cleanup() { [[ "${container}" ]] \ && docker stop "${container}" >/dev/null \ && docker rm "${container}" >/dev/null container= } container= trap cleanup EXIT status=0 for browserTag in firefox:2.48.2 chrome:2.48.2; do browser=${browserTag%:*} image=selenium/standalone-${browserTag} echo "Starting container for ${image}" container=$(docker run -d -P ${image}) [[ ${container} ]] || continue echo "Container ${container:0:12} started, creating screenshots..." if node "$(dirname "$0")"/screenshotter.js \ --browser="${browser}" --container="${container}" "$@"; then res=Done else res=Failed status=1 fi echo "${res} taking screenshots, stopping and removing ${container:0:12}" cleanup done exit ${status}