#!/bin/bash # Get the files list from the find output FILES_LIST="$1" if [[ ! -f "$GITHUB_OUTPUT" ]]; then # Write to stdout if the output file doesn't exist. GITHUB_OUTPUT="/dev/fd/1" fi # Function to output file information function output_file_info { local found="$1" local full_path="$2" local directory="$3" local directory_name="$4" local file_name="$5" local base_name="$6" local extension="$7" echo "found=$found" >> "$GITHUB_OUTPUT" echo "fullPath=$full_path" >> "$GITHUB_OUTPUT" echo "directory=$directory" >> "$GITHUB_OUTPUT" echo "directoryName=$directory_name" >> "$GITHUB_OUTPUT" echo "fileName=$file_name" >> "$GITHUB_OUTPUT" echo "baseName=$base_name" >> "$GITHUB_OUTPUT" echo "extension=$extension" >> "$GITHUB_OUTPUT" } # Check if any files were found if [[ -z "$FILES_LIST" ]]; then output_file_info "false" exit 0 fi # Get the first file from the list FIRST_FILE=$(echo "$FILES_LIST" | head -n 1) if [[ -z "$FIRST_FILE" ]]; then output_file_info "false" exit 0 fi # Extract path information FULL_PATH="$FIRST_FILE" DIRECTORY=$(dirname "$FULL_PATH") DIRECTORY_NAME=$(basename "$DIRECTORY") FILE_NAME=$(basename "$FULL_PATH") # Extract filename parts if [[ "$FILE_NAME" == *.* ]]; then # File has an extension BASE_NAME="${FILE_NAME%.*}" EXTENSION="${FILE_NAME##*.}" else # File has no extension BASE_NAME="$FILE_NAME" EXTENSION="" fi # Handle special cases for directory names if [[ "$DIRECTORY" == "." ]]; then DIRECTORY_NAME="." elif [[ "$DIRECTORY" == "/" ]]; then DIRECTORY_NAME="/" fi # Output all the extracted information using the function output_file_info "true" "$FULL_PATH" "$DIRECTORY" "$DIRECTORY_NAME" "$FILE_NAME" "$BASE_NAME" "$EXTENSION"