Files
xSaherelmWorkspace/ContextGenerator.sh
T
2026-08-11 22:10:12 +03:30

56 lines
1.4 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
# ---------------------------------------------------------
# Usage:
# ./context-generator.sh
# ./context-generator.sh /path/to/project
# ---------------------------------------------------------
SOURCE_PATH="${1:-}"
if [[ -z "$SOURCE_PATH" ]]; then
# If no path is provided, use current path
SEARCH_PATH="."
OUTPUT_PREFIX="xDashboard"
else
if [[ ! -d "$SOURCE_PATH" ]]; then
echo "Error: path '$SOURCE_PATH' is not a directory." >&2
exit 1
fi
# Resolve absolute path
SEARCH_PATH="$(cd "$SOURCE_PATH" && pwd)"
# Get last folder of the path
LAST_FOLDER="$(basename "$SEARCH_PATH")"
# Optional: make folder name safe for file name
SAFE_LAST_FOLDER="$(printf '%s' "$LAST_FOLDER" | tr -c '[:alnum:]._-' '_')"
OUTPUT_PREFIX="xDashboard-${SAFE_LAST_FOLDER}"
fi
TIMESTAMP="$(date +%Y%m%d_%H%M%S)"
OUTPUT_FILE="./Documents/GeneratedContext/${OUTPUT_PREFIX}-${TIMESTAMP}.txt"
find "$SEARCH_PATH" -type f \( \
-name "Dockerfile" \
-o -name "docker-compose.yaml" \
-o -name "*.cs" \
-o -name "*.ts" \
-o -name "*.html" \
-o -name "*.scss" \
\) \
-not -path "*/bin/*" \
-not -path "*/obj/*" \
-not -path "*/dist/*" \
-not -path "*/node_modules/*" \
-print0 |
while IFS= read -r -d '' file; do
printf '\n### FILE: %s\n\n' "$file"
cat "$file"
done > "$OUTPUT_FILE"
echo "Context generated: $OUTPUT_FILE"