renovate[bot] 89d8fc3f51 feat(github-action): update step-security/harden-runner (v2.11.0 → v2.13.0) (#34)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 09:21:01 +03:00
2025-07-13 14:08:23 +03: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> \
  -format markdown|json|yaml \
  -concurrency <num_workers> \
  --prefix="..." \
  --suffix="..."

Flags:

  • -source: directory to scan.
  • -destination: output file path (optional; defaults to <source>.<format>).
  • -format: output format (markdown, json, or yaml).
  • -concurrency: number of concurrent workers.
  • --prefix / --suffix: optional text blocks.

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%