Test ran at 2025-06-22 01:18:53.105875+00:00

SOLUTION:
dir_iterators=0.0.5: Ways of moving around directory trees
Origin: commit bd7687be6165c7dc622871b5e74e08a6e5915491 from https://github.com/pyjarrett/dir_iterators.git
Properties:
   Author: Paul Jarrett
   Description: Ways of moving around directory trees
   License: Apache-2.0
   Long_Description: [![Build Status](https://github.com/pyjarrett/dir_iterators/actions/workflows/build.yml/badge.svg)](https://github.com/pyjarrett/dir_iterators/actions)
[![Alire](https://img.shields.io/endpoint?url=https://alire.ada.dev/badges/dir_iterators.json)](https://alire.ada.dev/crates/dir_iterators.html)

## Iterator-based directory walks

Provides convenient ways to walk directories based on Ada 2012 user-defined
iterators.

Inspired by [walkdir for Rust](https://github.com/BurntSushi/walkdir).


## Walking a directory tree recursively

```ada
with Ada.Directories;
with Ada.Text_IO;
with Dir_Iterators.Recursive;

-- ...

Dir_Walk : constant Dir_Iterators.Recursive.Recursive_Dir_Walk
    := Dir_Iterators.Recursive.Walk (Dir);

for Dir_Entry of Dir_Walk loop
    Ada.Text_IO.Put_Line(Ada.Directories.Full_Name(Dir_Entry));
end loop;
```

## Walking a directory tree recursively with a filter

Use a filter to prune directories and files from the walk.

```ada
with Ada.Directories;
with Ada.Text_IO;
with Dir_Iterators.Recursive;

package AD renames Ada.Directories;

-- ...

    procedure Foo (Include_Dot_Files : Boolean; Dir_Root : String) is
        function Filter (E : Ada.Directories.Directory_Entry_Type) return Boolean is
            Name : constant String := Ada.Directories.Simple_Name(E);
        begin
            return Include_Dot_Files
                or else (not (Name'Length > 1 and then Name(1) = '.'));
        end Filter;

        Walk : constant Dir_Iterators.Recursive.Recursive_Dir_Walk :=
            Dir_Iterators.Recursive.Walk (Dir_Root, Filter'Access);
    begin
        for Dir_Entry of Walk loop
            Ada.Text_IO.Put_Line(Ada.Directories.Full_Name(Dir_Entry));
        end loop;
    end Foo;
```

   Maintainer: Paul Jarrett <jarrett.paul.young@gmail.com>
   Maintainers_Logins: pyjarrett
   Name: dir_iterators
   Tag: dir
   Tag: files
   Tag: walk
   Version: 0.0.5
   Website: https://github.com/pyjarrett/dir_iterators


LOG:
Spawning: alr -d -n get --build dir_iterators=0.0.5
Note: Deploying dir_iterators=0.0.5...
Note: Building dir_iterators=0.0.5/dir_iterators.gpr...
Setup
   [mkdir]        object directory for project Dir_Iterators
   [mkdir]        library directory for project Dir_Iterators
Compile
   [Ada]          dir_iterators.ads
   [Ada]          dir_iterators-ancestor.adb
   [Ada]          dir_iterators-recursive.adb
Build Libraries
   [gprlib]       Dir_Iterators.lexch
   [archive]      libDir_Iterators.a
   [index]        libDir_Iterators.a

dir_iterators=0.0.5 successfully retrieved and built.
There are no dependencies.
Found declared GPR file: dir_iterators.gpr