Ismo Vuorinen 4b8d66c778 feat(tests): more tests and ci action (#14)
* feat(tests): more tests and ci action
* fix(ci): coverage and pr-lint
* fix(ci): renovate rules, permissions, linting, actions
* fix(lint): editorconfig fixes
* fix(lint): kics.config
* fix(lint): formatting, permissions, pre-commit config
* chore(ci): set workflow to use go 1.23, go mod tidy
* chore(ci): fixes and stuff
* chore(ci): disable GO_GOLANGCI_LINT
* chore(ci): pinning, permissions
2025-03-23 19:41:39 +02:00
2025-02-07 09:46:31 +02:00

gibidify

gibidify is a CLI application written in Go that scans a source directory recursively and aggregates code files into a single text file. The output file is designed for use with LLM models and includes a prefix, file sections with separators, and a suffix.

Features

  • Recursive scanning of a source directory.
  • File filtering based on size, glob patterns, and .gitignore rules.
  • Modular, concurrent file processing with progress bar feedback.
  • Configurable logging and configuration via Viper.
  • Cross-platform build with Docker packaging support.

Installation

Clone the repository and build the application:

git clone https://github.com/ivuorinen/gibidify.git
cd gibidify
go build -o gibidify .

Usage

./gibidify -source <source_directory> -destination <output_file> [--prefix="..."] [--suffix="..."]

Docker

A Docker image can be built using the provided Dockerfile:

docker build -t ghcr.io/ivuorinen/gibidify:<tag> .

Run the Docker container:

docker run --rm \
  -v $(pwd):/workspace \
  -v $HOME/.config/gibidify:/config \
  ghcr.io/ivuorinen/gibidify:<tag> \
  -source /workspace/your_source_directory \
  -destination /workspace/output.txt \
  --prefix="Your prefix text" \
  --suffix="Your suffix text"

Configuration

gibidify supports a YAML configuration file. Place it at:

  • $XDG_CONFIG_HOME/gibidify/config.yaml or
  • $HOME/.config/gibidify/config.yaml or
  • in the folder you run the application from.

Example configuration:

fileSizeLimit: 5242880  # 5 MB
ignoreDirectories:
  - vendor
  - node_modules
  - .git
  - dist
  - build
  - target
  - bower_components
  - cache
  - tmp

License

This project is licensed under the MIT License.

Description
No description provided
Readme MIT 1,023 KiB
Languages
Go 96.1%
Shell 3.4%
Makefile 0.5%