#!/bin/bash # Get inputs SEARCH_PATH="$1" PATTERN="$2" FILE_TYPE="$3" MAX_DEPTH="$4" MIN_DEPTH="$5" SIZE="$6" MODIFIED="$7" ADDITIONAL_ARGS="$8" if [[ ! -f "$GITHUB_OUTPUT" ]]; then # Write to stdout if the output file doesn't exist. GITHUB_OUTPUT="/dev/fd/1" fi # Build the find command - start with basic find and path FIND_CMD="find \"$SEARCH_PATH\"" if [[ -n "$FILE_TYPE" ]]; then # Add type filter first FIND_CMD="$FIND_CMD -type $FILE_TYPE" fi # Add depth constraints before name pattern if [[ -n "$MAX_DEPTH" ]]; then FIND_CMD="$FIND_CMD -maxdepth $MAX_DEPTH" fi if [[ -n "$MIN_DEPTH" ]]; then FIND_CMD="$FIND_CMD -mindepth $MIN_DEPTH" fi # Add name pattern FIND_CMD="$FIND_CMD -name \"$PATTERN\"" if [[ -n "$SIZE" ]]; then FIND_CMD="$FIND_CMD -size $SIZE" fi if [[ -n "$MODIFIED" ]]; then FIND_CMD="$FIND_CMD -mtime $MODIFIED" fi if [[ -n "$ADDITIONAL_ARGS" ]]; then FIND_CMD="$FIND_CMD $ADDITIONAL_ARGS" fi # Execute the command and capture output OUTPUT=$(eval "$FIND_CMD" 2>/dev/null || true) RESULT=$? # Count the number of files found if [[ -n "$OUTPUT" ]]; then COUNT=$(echo "$OUTPUT" | wc -l) echo "files<> "$GITHUB_OUTPUT" echo "$OUTPUT" >> "$GITHUB_OUTPUT" echo "EOF" >> "$GITHUB_OUTPUT" else COUNT=0 echo "files=" >> "$GITHUB_OUTPUT" fi echo "count=$COUNT" >> "$GITHUB_OUTPUT" exit $RESULT