LINUX.ORG.RU

nomenus-rex 0.5.2 — утилита для массового переименования файлов

 ,


0

1

Nomenus-rex — это консольная утилита для массового переименования файлов. Настраивается с помощью простого конфигурационного файла. Программа написана на C++ и распространяется на условиях GPL 3.0.

Со времени предыдущей новости (nomenus-rex 0.3.0 -- утилита для массового переименования файлов) утилита обросла функциональностью, а также исправлены множественные ошибки и недоделки:

  • 0.5.2
  1. Новый параметр для отключения запроса подтверждения перед запуском процессинга. Может быть полезно для скриптов.
  2. Прогрессбар. Красивый.
  • 0.5.1
  1. Добавлены различные режимы сортировки перед обработкой (Unicode-friendly)
  2. Небольшой рефакторинг плюс проверка существования исходной директории.
  • 0.5.0
  1. Большинство правил теперь покрыты тестами.
  2. Теперь для работы со строками используется ICU библиотека. Это должно исправить основные проблемы с Юникодом.
  • 0.4.0
  1. Немного шаблонной магии в парсере конфигурационного файла. Теперь добавлять новые правила будет проще.
  2. Новое правило «replace»: поиск и замена всех вхождений подстроки на новую строку в текущем имени. Это новый класс правил.
  3. Файлы теперь сортируются по алфавиту перед обработкой.
  4. Тесты. Нет так важно для конечного пользователя, но кода стало довольно много, и без тестов тяжело его поддерживать в рабочем состоянии.
  5. Переработана документация, что избавило пользователя от нобходимости сочинять конфиг. Теперь достаточно лишь копировать из документации типовые блоки.

Как всегда, подготовлена сборка программы для AMD64.

>>> Подробности



Проверено: hobbit ()
Последнее исправление: demidrol (всего исправлений: 2)

Как же эта новость ублюдски на узком экране смотрится. Какой смысл делать подобие UI ascii в данном случае?

IIIypuk ★★★★
()
Ответ на: комментарий от IIIypuk

эта новость ублюдски на узком экране смотрится

Ничего не знаю про сверх-узкие экраны. Что, у тебя там и 40 символов по горизонтали нет?

Usruser
() автор топика
Ответ на: комментарий от Usruser

Всяки сервисы в сети показывают 421x935
screen.width + screen.height.

По факту 1600x720.

IIIypuk ★★★★
()
Ответ на: комментарий от IIIypuk

И в чём тут «ублюдочность»? Я сейчас сузил экран браузера до минимума, как раз этот разделитель сложился ровно пополам. Никакой трагедии не увидел.

Да и ты со своим экраном (что это вообще там у тебя такое забавное? Кассовый аппарат, печатаешь на ленту?) должен был бы уже привыкнуть :)

Usruser
() автор топика
Ответ на: комментарий от Usruser

Не, Samsung A12, DPI принудительно увеличен до 460, люблю мелкие шрифты и когда много информации на экране помещается)

Меня сейчас начало волновать то, почему размер экрана определяется софтом ~400px, когда он больше почти в два раза)

upd: простите за флуд, оффтоп начался

IIIypuk ★★★★
()
Последнее исправление: IIIypuk (всего исправлений: 1)

Тесты. Нет так важно для конечного пользователя, но кода стало довольно много и без тестов тяжело его поддерживать в рабочем состоянии.

Обычно тесты лежат рядом с основыми исходниками и компилируются только для прогона тестов, а не всегда.

theNamelessOne ★★★★★
()
Ответ на: комментарий от theNamelessOne

Вынос тестов в отдельную сущность сделает их написание менее удобным, а выгоды не даст никакой (ну кроме пары секунд при компиляции).

Usruser
() автор топика

Даже месяца с прошлой новости не прошло, камон! Кому было интересно, уже подписались на твой Гитхаб.

filosofia
()

Ты натурально это на крестах написал? Зачем? Это можно вообще на шелле через какой диалог-движок твоей DE запузырить

upcFrost ★★★★★
()
Ответ на: комментарий от doctorx

Да мне всё равно. У меня нет полномочий принимать такие решения. У нас есть корректоры и модераторы, им виднее как лучше оформить.

Usruser
() автор топика
Ответ на: комментарий от IIIypuk

почему размер экрана определяется софтом ~400px

Потому что в вебе px это 1/96 дюйма.

i-rinat ★★★★★
()

В документации написано много слов, но не хватает раздела Примеры, в котором показываются исходные имена файлов, преобразующий конфиг и итоговые имена файлов. Это же самое главное, что нужно для такой программы.

Xintrea ★★★★★
()
Ответ на: комментарий от Xintrea

Один пример (почти всеобъемлющий) там всё же есть: рядом с примером полного конфига.

Но позже я добавлю несколько «типовых» конфигов. Просто мне, как автору, многие вещи кажутся тривиальными и подобрать хороший набор примеров не так уж и просто.

Usruser
() автор топика
Ответ на: комментарий от Usruser

Но позже я добавлю несколько «типовых» конфигов.

Только пользователю нужно показать, как будут трансформироваться файлы.

То есть не писать «в данном случае все последовательности из цифр будут заменены на трехбуквенные сочетания соответствующих символов из алфавита в случае, если они предваряются знаком тире» - это мало кто воспримет, а именно показать что было и что получается.

Xintrea ★★★★★
()
Ответ на: комментарий от Xintrea

Именно так уже есть. Цитирую руководство:

For example, the aforecited config will copy
«/home/user/work/source/TestDir2/file2.txt»
to something like
«/home/user/work/destination/2022-03-16_TestDir2_0.txt»

Usruser
() автор топика
Ответ на: комментарий от Usruser

Ну вот я, например, не могу понять, как из

TestDir2/file2.txt

получается
2022-03-16_TestDir2_0.txt

С правилом, в котором есть
    {
        type        = "integer";
        // mode     = "global"|"local at every dir"
        mode        = "local at every dir";
        start       = 0;
        step        = 1;
        padding     = 5;
    },

Хотя на деле должно получиться
2022-03-16_TestDir2_00000.txt

Учитывая что написано
"padding" dictates the length of the result: integer will be padded with zeros.

Xintrea ★★★★★
()
Ответ на: комментарий от Xintrea

Хотя на деле должно получиться

Ты всё правильно пишешь. «Padding» появился позже чем правило «integer» и я забыл обновить этот момент в документации.

Это моя ошибка.

Usruser
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.