Code Aggregator is a powerful application designed to streamline the process of consolidating multiple text files from a selected root folder and its subfolders into a single comprehensive text file. This tool is especially beneficial for developers and researchers who need to upload and manage large sets of code files or other text-based documents in a unified manner.
- Consolidating Code Files: Simplify the process of combining all your project files into one file for easier sharing, review, or uploading to AI models like GPT.
- Preparing Data for AI Models: Aggregate scripts, configuration files, and documentation into a single text file, making it easier to upload and manage within AI platforms that support file uploads.
- Project Archiving: Create a single-file backup of all your project’s text files, ensuring you have a comprehensive archive of your work.
- Documentation: Merge multiple documentation files into one, providing a unified reference document for your project or team.
- Text-Based Data Management: Easily manage large collections of text files by consolidating them into a single, searchable file.
By using Code Aggregator, you can enhance your workflow efficiency, improve data management, and simplify the process of preparing code and documentation for various use cases.
- Select a root folder for aggregation.
- Include or exclude specific files and folders using checkboxes.
- Save the aggregated text to a specified location.
- Option to open the aggregated file after the operation completes.
- Command line support for running the aggregator without the GUI.
- Click the 'Select Folder' button to choose the root folder for aggregation.
- Use the checkboxes to include or exclude specific files and folders. By default, all folders and files are included.
- Click 'Start Operation' to begin the aggregation process. You will be prompted to specify the location and name of the output file.
- Note: It is recommended to exclude folders like .git, .vs, or other dependency folders to avoid including unnecessary files.
?
- Show command line syntax and tips.source_folder
- Run the aggregator on this source folder.-o:"New_Output_Folders\New_Output_Filename.ext"
- Change the output file for this run only.-oc:"New_Output_Folders\New_Output_Filename.ext"
- Change the output file and update the JSON settings.-a:"Folder\Folder_or_File_to_Add[.ext]"
- Add this folder or file for this run only.-ac:"Folder\Folder_or_File_to_Add[.ext]"
- Add this folder or file and update the JSON settings.-q
- Quiet mode (no output from the program, don't show windows).
0
- Worked perfectly.1
- Folder not found (when trying to add a new folder).2
- File not found (when trying to add a new file).3
- Error outputting to the output file.4
- Source folder not found.
-
Clone the repository:
git clone https://github.com/yourusername/code-aggregator.git cd code-aggregator
-
Build the project:
dotnet build --configuration Release
-
Ensure you have Inno Setup installed.
-
Open the
Inno Install Compiler Script.iss
file in Inno Setup. -
Compile the script. This will look for the built executable in the
bin/Release/net8.0-windows
folder and create asetup.exe
file in theOutput
folder.
-
Navigate to the
Output
folder where thesetup.exe
file was created. -
Run
setup.exe
to install the Code Aggregator application. -
After installation, you can find the application in the Start Menu under "Code Aggregator."
This is the initial release of the Code Aggregator application, designed to help users aggregate text files from selected folders into a single text file. This is particularly useful for consolidating code files or other text-based files from a project directory.
-
Folder Selection:
- Users can select a root folder to aggregate files from.
- A tree view is provided to include or exclude specific files and folders.
- All selected folders and files are remembered for future use.
-
File Aggregation:
- Aggregates all text files from the selected folders and subfolders into a single text file.
- Ensures that only text files are included in the aggregation.
-
Settings Management:
- Saves the selected folders and file inclusion settings in a JSON file.
- Detects new folders and indicates them to the user for inclusion.
-
User Interface:
- Instructions are provided on the main form to guide the user.
- Buttons for selecting folders and starting the aggregation process.
- Progress form to show the progress of the aggregation process.
- Option to open the generated file after the aggregation is complete.
-
Command Line Support:
- Supports command line arguments to run the aggregator without the graphical user interface.
- Options to specify output file, add folders, and run in quiet mode.
?
- Show command line syntax and tips.source_folder
- Run the aggregator on this source folder.-o:"New_Output_Folders\New_Output_Filename.ext"
- Change the output file for this run only.-oc:"New_Output_Folders\New_Output_Filename.ext"
- Change the output file and update the JSON settings.-a:"Folder\Folder_or_File_to_Add[.ext]"
- Add this folder or file for this run only.-ac:"Folder\Folder_or_File_to_Add[.ext]"
- Add this folder or file and update the JSON settings.-q
- Quiet mode (no output from the program, don't show windows).
0
- Worked perfectly.1
- Folder not found (when trying to add a new folder).2
- File not found (when trying to add a new file).3
- Error outputting to the output file.4
- Source folder not found.
- Open the application.
- Click the 'Select Folder' button to choose the root folder for aggregation.
- Use the checkboxes in the tree view to include or exclude specific files and folders.
- Click 'Start Operation' to begin the aggregation process.
- After completion, choose whether to open the generated file.
- Run the application from the command line with the appropriate arguments as described above.
- Initial scanning of large directories may take some time.
- Antivirus software may flag the executable. Consider signing the code with a recognized certificate.
Contributions are welcome! Please open an issue or submit a pull request for any changes.
This project is licensed under the MIT License.