Преглед изворни кода

Plugin renamer (#393)

This plugin is an alternative to the native batch rename interface in
nnn. qmv from renameutils and vidir from moreutils allow to rename
files without fear of replacing existing files.
master
José Luis Neder Mischievous Meerkat пре 5 година
родитељ
комит
189042d2d9
2 измењених фајлова са 42 додато и 0 уклоњено
  1. +1
    -0
      plugins/README.md
  2. +41
    -0
      plugins/renamer

+ 1
- 0
plugins/README.md Прегледај датотеку

@@ -14,6 +14,7 @@ Plugins extend the capabilities of `nnn`. They are _executable_ scripts (or bina

| Plugin (a-z) | Description | Lang | Deps |
| --- | --- | --- | --- |
| renamer | Batch rename files with qmv or vidir | sh | [renameutils](https://www.nongnu.org/renameutils/) or [moreutils](https://joeyh.name/code/moreutils/) |
| boom | Play random music from dir | sh | [moc](http://moc.daper.net/) |
| dups | List non-empty duplicate files in current dir | sh | find, md5sum,<br>sort uniq xargs |
| chksum | Create and verify checksums | sh | md5sum,<br>sha256sum |


+ 41
- 0
plugins/renamer Прегледај датотеку

@@ -0,0 +1,41 @@
#!/usr/bin/env sh

# Description: Batch rename selection or current directory with qmv
#
# Notes:
# - Try to mimic current batch rename functionality but with correct
# handling of edge cases by qmv or vidir.
# Qmv opens with hidden files if no selection is used. Selected
# directories are shown.
# Vidir don't show directories nor hidden files.
#
# Shell: POSIX compliant
# Author: José Neder

selection=${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection

if command -v qmv >/dev/null 2>&1; then
batchrenamesel="qmv -fdo -da"
batchrename="qmv -fdo -a"
elif command -v vidir >/dev/null 2>&1; then
batchrenamesel="vidir"
batchrename="vidir"
else
printf "there is not batchrename program installed."
exit
fi

if [ -s "$selection" ]; then
printf "rename selection? "
read -r resp
fi

if [ "$resp" = "y" ]; then
# -o flag is necessary for interative editors
xargs -o -0 $batchrenamesel < "$selection"
elif [ ! "$(LC_ALL=C ls -a)" = ".
.." ]; then
# On older systems that don't have ls -A
$batchrename
fi


Loading…
Откажи
Сачувај