Plugin for nnn file manager, to only delete files from the last-selected directory. Written in Hare ("harelang").
use fs;
use os;
use path;
use regex;
fn walk(buf: *path::buffer) void = {
let iter = os::iter(path::string(buf))!;
defer fs::finish(iter);
for (const d => fs::next(iter)!) {
if (d.name == "." || d.name == "..") {
continue;
};
path::push(buf, d.name)!;
let filename = path::string(buf);
const re = regex::compile(` `)!;
if (regex::test(&re, filename)) {
const result = regex::replace(&re, filename, `_`)!;
os::move(filename, result)!;
};
path::pop(buf);
};
};
export fn main() void = {
const root = if (len(os::args) <= 1) "." else os::args[1];
let buf = path::init(root)!;
walk(&buf);
};
© Brett Mahar
site nginx on openbsd