Test ran at 2025-08-31 01:19:44.264027+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 Maintainers_Logins: pyjarrett Name: dir_iterators Tag: dir Tag: files Tag: walk Version: 0.0.5 Website: https://github.com/pyjarrett/dir_iterators LOG: [alr test] Testing dir_iterators=0.0.5 [alr test] Spawning retrieval for remote crate: alr -d -n get dir_iterators=0.0.5 Note: Deploying dir_iterators=0.0.5... dir_iterators=0.0.5 successfully retrieved. There are no dependencies. [alr test] Spawning default test for remote crate: alr -d -n build --release -- -cargs:Ada -gnatwn Note: Building dir_iterators=0.0.5/dir_iterators.gpr... /root/.local/share/alire/toolchains/gprbuild_25.0.1_9a2e6cfb/bin/gprbuild: /lib64/libc.so.6: version `GLIBC_2.35' not found (required by /root/.local/share/alire/toolchains/gprbuild_25.0.1_9a2e6cfb/bin/gprbuild) stderr: Command ["gprbuild", "-s", "-j0", "-p", "-P", "/home/runner/work/alire-crates-ci/alire-crates-ci/test/f21f0005-2e14-4d39-9947-868b2e8025b2/dir_iterators_0.0.5_bd7687be/dir_iterators.gpr", "-cargs:Ada", "-gnatwn"] exited with code 1 ERROR: Command ["gprbuild", "-s", "-j0", "-p", "-P", "/home/runner/work/alire-crates-ci/alire-crates-ci/test/f21f0005-2e14-4d39-9947-868b2e8025b2/dir_iterators_0.0.5_bd7687be/dir_iterators.gpr", "-cargs:Ada", "-gnatwn"] exited with code 1 stderr: ALIRE.CHECKED_ERROR stderr: Command ["gprbuild", "-s", "-j0", "-p", "-P", "/home/runner/work/alire-crates-ci/alire-crates-ci/test/f21f0005-2e14-4d39-9947-868b2e8025b2/dir_iterators_0.0.5_bd7687be/dir_iterators.gpr", "-cargs:Ada", "-gnatwn"] exited with code 1 stderr: raised ALIRE.CHECKED_ERROR : alire-stored-error:1 [/usr/bin/alr] 0xe75bc6 Alire.Raise_Checked_Error at alire.adb:284 0xac1a54 Alire.Os_Lib.Subprocess.Checked_Spawn at alire-os_lib-subprocess.adb:111 0xd40276 Alire.Spawn.Command at alire-spawn.adb:22 0xd412ee Alire.Spawn.Gprbuild at alire-spawn.adb:68 0xc748cb Alire.Roots.Build at alire-roots.adb:189 0xc7301a Alire.Roots.Build at alire-roots.adb:255 0xc9832b Alire.Roots.Traverse at alire-roots.adb:2143 0xcfee85 Alire.Solutions.Traverse.Visit at alire-solutions.adb:1472 0xcfdfcc Alire.Solutions.Traverse at alire-solutions.adb:1555 0xc9841e Alire.Roots.Traverse at alire-roots.adb:2147 0xc984dd Alire.Roots.Traverse at alire-roots.adb:2127 0xc7359b Alire.Roots.Build at alire-roots.adb:286 0xc736d7 Alire.Roots.Build at alire-roots.adb:114 0x49aa0d Alr.Commands.Build.Execute at alr-commands-build.adb:145 0x49a36d Alr.Commands.Build.Execute at alr-commands-build.adb:113 0x49a51f Alr.Commands.Build.Execute at alr-commands-build.adb:54 0x53bbcc Alr.Commands.Sub_Cmd.Execute at clic-subcommand-instance.adb:749 0x5472be Alr.Commands.Execute at alr-commands.adb:632 0x43d48a Alr.Main at alr-main.adb:13 0x4403a3 Main at b__alr-main.adb:2445 [/lib64/libc.so.6] 0x7fe3bbbd95ce 0x7fe3bbbd967e [/usr/bin/alr] 0x43d323 _start at ??? 0xfffffffffffffffe stderr: ALIRE.ROOTS.BUILD._WRAPPED_STATEMENTS.BUILD_FAILED stderr: alire-roots.adb:202 stderr: raised ALIRE.ROOTS.BUILD._WRAPPED_STATEMENTS.BUILD_FAILED : alire-roots.adb:202 [/usr/bin/alr] 0xc74cc7 Alire.Roots.Build at alire-roots.adb:202 0xc7301a Alire.Roots.Build at alire-roots.adb:255 0xc9832b Alire.Roots.Traverse at alire-roots.adb:2143 0xcfee85 Alire.Solutions.Traverse.Visit at alire-solutions.adb:1472 0xcfdfcc Alire.Solutions.Traverse at alire-solutions.adb:1555 0xc9841e Alire.Roots.Traverse at alire-roots.adb:2147 0xc984dd Alire.Roots.Traverse at alire-roots.adb:2127 0xc7359b Alire.Roots.Build at alire-roots.adb:286 0xc736d7 Alire.Roots.Build at alire-roots.adb:114 0x49aa0d Alr.Commands.Build.Execute at alr-commands-build.adb:145 0x49a36d Alr.Commands.Build.Execute at alr-commands-build.adb:113 0x49a51f Alr.Commands.Build.Execute at alr-commands-build.adb:54 0x53bbcc Alr.Commands.Sub_Cmd.Execute at clic-subcommand-instance.adb:749 0x5472be Alr.Commands.Execute at alr-commands.adb:632 0x43d48a Alr.Main at alr-main.adb:13 0x4403a3 Main at b__alr-main.adb:2445 [/lib64/libc.so.6] 0x7fe3bbbd95ce 0x7fe3bbbd967e [/usr/bin/alr] 0x43d323 _start at ??? 0xfffffffffffffffe ERROR: Compilation failed.