module

Krikri::PluginHelpers::ArchivePaths

ArchivePaths - pure logic for the archive plugin's arcroot calculation. No I/O here - the plugin itself resolves which paths actually exist.

Class methods

common_path(paths : Array(String)) : String

dirname(commonprefix([dirname(p) + "/" for p in paths])) + "/" - matches real Ansible's (community.general) archive module's common_path() exactly, verified against real ansible-playbook's actual arcroot output for single-file, single-directory, and multi-path cases.

Source
python_dirname(path : String) : String

Python's os.path.dirname strips only the trailing slash from a path already ending in "/" (returning everything before it), unlike Crystal's File.dirname, which treats a trailing slash as insignificant and returns the level ABOVE it - a real, verified divergence that broke arcroot calculation until caught by comparing actual output against real ansible-playbook.

Source
string_common_prefix(strings : Array(String)) : String
Source