#!/usr/bin/env bash # run.sh - Script to run the tsysdevstack-toolboxes-docs container set -e # Default values CONTAINER_NAME="tsysdevstack-toolboxes-docs" IMAGE_NAME="tsysdevstack/toolboxes-docs:latest" WORKDIR="/home/tsysdevstack" OUTPUT_DIR="/home/tsysdevstack/TSYSDevStack/Toolbox/docs/output" # Parse command line arguments INTERACTIVE=true DAEMON=false CMD="" while [[ $# -gt 0 ]]; do case $1 in -d|--daemon) DAEMON=true INTERACTIVE=false shift ;; -c|--command) CMD="$2" INTERACTIVE=false shift 2 ;; -n|--name) CONTAINER_NAME="$2" shift 2 ;; -h|--help) echo "Usage: $0 [OPTIONS] [COMMAND]" echo "" echo "Options:" echo " -d, --daemon Run container in daemon mode" echo " -c, --command Run a specific command in the container" echo " -n, --name Specify container name (default: $CONTAINER_NAME)" echo " -h, --help Show this help message" echo "" echo "Examples:" echo " $0 # Run interactively" echo " $0 -d # Run as daemon" echo " $0 -c 'pandoc --version' # Run specific command" exit 0 ;; *) echo "Unknown option: $1" exit 1 ;; esac done # Function to run the container run_container() { local extra_args=() if [ "$INTERACTIVE" = true ]; then extra_args+=(-it) fi if [ "$DAEMON" = true ]; then extra_args+=(-d) fi if [ -n "$CMD" ]; then docker run "${extra_args[@]}" \ --name "$CONTAINER_NAME" \ -v "$(pwd)/output:$OUTPUT_DIR" \ -w "$WORKDIR" \ "$IMAGE_NAME" \ bash -c "$CMD" else docker run "${extra_args[@]}" \ --name "$CONTAINER_NAME" \ -v "$(pwd)/output:$OUTPUT_DIR" \ -w "$WORKDIR" \ "$IMAGE_NAME" fi } # Check if container is already running if [ "$(docker ps -q -f name="$CONTAINER_NAME")" ]; then echo "Container $CONTAINER_NAME is already running." if [ -n "$CMD" ]; then # Run command in existing container docker exec -it "$CONTAINER_NAME" bash -c "$CMD" else # Attach to existing container docker exec -it "$CONTAINER_NAME" /bin/bash fi elif [ "$(docker ps -aq -f name="$CONTAINER_NAME")" ]; then # Container exists but is not running, start it docker start "$CONTAINER_NAME" > /dev/null if [ -n "$CMD" ]; then docker exec -it "$CONTAINER_NAME" bash -c "$CMD" else docker attach "$CONTAINER_NAME" fi else # Run new container run_container fi