From 5676ce6c6858c837505daf460dd9ffe576ca9d29 Mon Sep 17 00:00:00 2001 From: Henning Stahlke <github@henningstahlke.de> Date: Sat, 9 Nov 2019 23:26:49 +0100 Subject: [PATCH] add is_directory(path) and subdirectories(path) to Nasal/io.nas --- Nasal/io.nas | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Nasal/io.nas b/Nasal/io.nas index 4bf0985b4..78a8e4678 100644 --- a/Nasal/io.nas +++ b/Nasal/io.nas @@ -22,6 +22,27 @@ var dirname = func(path) { substr(path, 0, size(path) - size(basename(path))); }; +var is_directory = func(path) { + var tmp = stat(path); + if (tmp != nil and tmp[11] == "dir") return 1; + else return 0; +}; + +# <path> the path that should be searched for subdirectories +# returns a vector of subdirectory names +var subdirectories = func(path) { + if (!is_directory(path)) + return; + var list = subvec(directory(path), 2); + var subdirs = []; + foreach (var entry; list) { + if (is_directory(path~"/"~entry)) { + append(subdirs, entry); + } + } + return subdirs; +} + # include(<filename>) # # Loads and executes a Nasal file in place. The file is searched for in the