Files
Christopher 222e6af258 🔧 refactor: Use #!/usr/bin/env bash in all shell scripts (#16)
This commit refactors all the shell scripts to use `#!/usr/bin/env bash` instead of `#!/bin/bash`. This change ensures that the scripts will run with the system's default Bash interpreter, even if it is not located at the standard `/bin/bash` path.
2024-10-23 13:32:15 -05:00

52 lines
1.5 KiB
Bash

#!/usr/bin/env bash
# Function to combine container info for display
combine_container_info() {
# Function to combine container information
# Parameters:
# $1: id - The container id
# $2: name - The container name
# $3: image - The container image
local id="$1"
local name="$2"
local image="$3"
# Check if name is empty
if [ -z "$name" ]; then
echo "$id ($image)" # Print container id and image if name is empty
else
echo "$name" # Print container name if it is not empty
fi
}
# Fetch all containers info, including those that are not running
CONTAINERS=()
# Read container information from docker command output
while IFS= read -r line; do
CONTAINERS+=("$line")
done < <(
# Get container information from docker ps command
docker ps -a --format "{{.ID}}|{{.Names}}|{{.Image}}" | while IFS="|" read -r id name image; do
# Call the combine_container_info function
combine_container_info "$id" "$name" "$image"
done
)
# Prompt the user to select a container
echo "Select a container to fetch logs:"
# Loop through the available container options
select CONTAINER_CHOICE in "${CONTAINERS[@]}"; do
# Extract the container ID/name from the selected option
CONTAINER_ID_OR_NAME=$(echo $CONTAINER_CHOICE | awk '{print $1}')
# Fetch and display the logs for the selected container
docker logs $CONTAINER_ID_OR_NAME
# Break out of the loop after fetching and displaying the logs
break
done