From 3dc83999e481b5dee930c25b54419d1c0dbd0bb4 Mon Sep 17 00:00:00 2001 From: Thelonius Kort Date: Sat, 13 Jun 2026 21:54:55 +0200 Subject: [PATCH] initial commit --- filla.nu | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100755 filla.nu diff --git a/filla.nu b/filla.nu new file mode 100755 index 0000000..231d682 --- /dev/null +++ b/filla.nu @@ -0,0 +1,80 @@ +#!/bin/env nu + +def main [] {} + +def "main test" [search replace ...paths] { + + print $"search: ($search) replace: ($replace)" + + ($paths | + + each {|f| + + let name = $f | path basename + + let newname = $name | str replace -r $search $replace + + print $"rename: '($name)' to: '($newname)'" + + } + ) +} + +def "main rename" [search replace ...paths] { + + ($paths | + + each {|f| + + let folder = $f | path dirname + + let name = $f | path basename + + let newname = $name | str replace -r $search $replace + + mv ($folder | path join $name) ($folder | path join $newname) + } + ) +} + +def "main number" [...paths] { + + let files = $paths | sort | enumerate + + let digits = ($files | length | math log 10 | math floor) + 1 + + ($files | + + each {|f| + + let folder = $f.item | path dirname + + let name = $f.item | path basename + + let number = $f.index + 1 | fill -a right -c '0' -w $digits + + let newname = $number + '-' + $name + + mv ($folder | path join $name) ($folder | path join $newname) + } + ) +} + +def "main folnum_test" [...paths] { + + ($paths | + + each {|f| + + let folder = $f | path dirname + + let foldernum = $folder | path basename | str replace -r '^\D*(\d+)\D*$' '$1' + + let name = $f | path basename + + let newname = $foldernum + '-' + $name + + print $"rename: '($name)' to: '($newname)'" + } + ) +}