71 lines
1.8 KiB
Bash
71 lines
1.8 KiB
Bash
#!/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"
|