elm-script icon indicating copy to clipboard operation
elm-script copied to clipboard

Helper functions for recursively getting files and subdirectories

Open MartinSStewart opened this issue 4 years ago • 2 comments

I noticed that while there is Script.Directory.listFiles and Script.Directory.listSubdirectories they don't list any items in subdirectories.

I think it would be useful to have something like this too (and something similar for recursively listing all subdirectories):

listAllFiles : Script.Directory.Directory permissions -> Script String (List (Script.File.File permissions))
listAllFiles directory =
    Script.map2 (++)
        (Script.Directory.listFiles directory)
        (Script.Directory.listSubdirs directory
            |> Script.thenWith (List.map listAllFiles >> Script.sequence >> Script.map List.concat)
        )

This implementation doesn't bother handling edge cases like "What happens if we fail to read a file/directory after it gets listed in a subdirectory?" and "What happens if there's a symbolic link that to directory higher up, trapping us in a loop?" I'm not sure what should be done in these cases.

MartinSStewart avatar Jun 17 '20 16:06 MartinSStewart