Skip to content

0x41rtur/tiny_ninja

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 Tiny Ninja (tn)

Утилита командной строки на C для автоматического перемещения файлов с заданным расширением в целевую директорию.

🚀 Возможности

  • 📦 Перемещение файлов по расширению (jpg, log, c, и др.)
  • 📣 Уведомления при ошибках или успешных операциях
  • ⚡ Написано на C — никаких сторонних зависимостей

🛠️ Использование

./tn -e jpg -d images/
./tn -m "jpg=images;mp4=videos;mp3=music"

📌 Примеры

🔸 Перемещение файлов .jpg в директорию images:

tn -e jpg -d images

🔸 Перемещение файлов .jpg в директорию images:

🔸 Перемещение файлов .mp4 в директорию video:

🔸 Перемещение файлов .mp3 в директорию music:

./tn -m "jpg=images;mp4=videos;mp3=music"

📥 Установка

Склонируйте репозиторий и соберите проект:

git clone https://github.com/yourusername/tiny_ninja.git
cd tiny_ninja
cmake -B build
cmake --build build

Полная сборка (включая тесты)

git clone https://github.com/yourusername/tiny_ninja.git
cd tiny_ninja
cmake -B build
cmake --build build

Только исполняемый файл (tn) без тестов

git clone https://github.com/yourusername/tiny_ninja.git
cd tiny_ninja
cmake -B build -DBUILD_TESTING=OFF
cmake --build build --target tn

🔧 Установка в систему (опционально):

sudo cp build/tn /usr/local/bin/tn

После этого tn будет доступна как обычная команда из любого места:

tn -e jpg -d images

📦 Мини-скрипт сборки и установки одним шагом:

git clone https://github.com/yourusername/tiny_ninja.git && \
cd tiny_ninja && \
cmake -B build -DBUILD_TESTING=OFF && \
cmake --build build --target tn && \
sudo cp build/tn /usr/local/bin/tn

🧪 Проверка установки:

tn -h

❌ Удаление

Если вы хотите удалить Tiny Ninja из системы, выполните команду:

sudo rm /usr/local/bin/tn

📋 TODO

Список запланированных возможностей и улучшений:

  • 🥷 Релиз MVP
    Первая демо версия утилиты

  • 🧰 Поддержка нескольких расширений
    Возможность указывать файлы списками:
    -m jpg=images;mp4=video;avi=video

  • 🧪 Покрыть тестами основной функционал

  • 🔧 Глобальный конфиг-файл
    Расположение: ~/.config/tiny_ninja/.tiny_ninja
    Позволит сохранять пользовательские настройки по умолчанию.

  • 🗂️ Локальные конфигурации .tiny_ninja
    Разрешит каждому каталогу задавать свои правила сортировки.

  • 📏 Фильтрация по размеру файла
    Примеры опций:
    --min-size 5MB, --max-size 100KB

  • 🕓 Фильтрация по дате создания
    Примеры опций:
    --older-than 30d, --newer-than 7d

  • 🧵 Многопоточность
    Параллельная обработка большого количества файлов для ускорения.

  • ⏲️ Демон-режим
    Постоянно работающий режим, периодически наводящий порядок автоматически.

🤝 Вклад

Мы всегда рады улучшениям, идеям и исправлениям. Чтобы внести вклад в развитие Tiny Ninja:

  1. 🔀 Сделайте fork репозитория
  2. 🛠️ Создайте новую ветку:
  3. ✍️ Внесите изменения
  4. ✅ Убедитесь, что проект собирается и работает
  5. 📤 Откройте Pull Request с описанием изменений
   git checkout -b feature/ваша-фича

📢 Также вы можете:

Открыть Issue, если нашли баг или у вас есть предложение

Отметить репозиторий звёздочкой ⭐ — это мотивирует!

Поделиться ссылкой с коллегами и друзьями 👥

💡 Tiny Ninja строится на идее минимализма и читаемого C-кода.
Ваша помощь делает проект лучше для всех.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published