feat(consolidate): init the script and check executableness

This commit is contained in:
Mohammad Rafiq 2025-02-06 15:48:34 +08:00
parent 04f2cc32af
commit eb223f38b0

38
bin/consolidate Executable file
View file

@ -0,0 +1,38 @@
#!/bin/bash
# Start the process.
echo "Consolidating..."
# Check for input:
# If the user provides any arguments, store those as the list of file extensions to look for.
# If no arguments are given, set a default list of extensions such as "txt", "sh", "md", and "csv".
# Prepare a temporary file:
# Create a temporary file that will hold patterns from the ".gitignore" file.
# Read the .gitignore file:
# If the ".gitignore" file is present, read it and pull out lines that are not comments or blank.
# Store these patterns in the temporary file.
# Create an output file:
# Get the current date and time, and create an output file named using this timestamp.
# Find files:
# Look for all files in the current directory and its subdirectories,
# excluding the ".gitignore" file itself.
# Filter these files based on the specified extensions.
# Exclude any files that appear to be binary.
# Exclude any files that match patterns listed in the ".gitignore".
# Process each file:
# For each file that matches the criteria:
# - Write a header to the output file that includes the filename.
# - Add the content of the file to the output file.
# - Finish with a closing code block marker.
# Clean up:
# Delete the temporary file holding the patterns from the ".gitignore".
# Complete the process:
# Inform the user that the operation is complete and let them know where the consolidated output has been saved.
echo "Consolidation complete! See your output file at: "