Module: Bash

Defined in:
lib/bash/merge.rb,
lib/bash/merge/emitter.rb,
lib/bash/merge/version.rb,
lib/bash/merge/freeze_node.rb,
lib/bash/merge/debug_logger.rb,
lib/bash/merge/merge_result.rb,
lib/bash/merge/node_wrapper.rb,
lib/bash/merge/smart_merger.rb,
lib/bash/merge/file_analysis.rb,
lib/bash/merge/comment_tracker.rb,
lib/bash/merge/conflict_resolver.rb

Overview

Bash::Merge provides a generic Bash script smart merge system using tree-sitter AST analysis. It intelligently merges template and destination Bash scripts by identifying matching statements and resolving differences using structural signatures.

Examples:

Basic usage

template = File.read("template.sh")
destination = File.read("destination.sh")
merger = Bash::Merge::SmartMerger.new(template, destination)
result = merger.merge

With debug information

merger = Bash::Merge::SmartMerger.new(template, destination)
debug_result = merger.merge_with_debug
puts debug_result[:content]
puts debug_result[:statistics]

Defined Under Namespace

Modules: Merge