bulatik

Проекты
Вернуться к списку проектов

vermanade

📄 Go ⭐ 0 🍴 0

vermanade

Простая самописанная утилита на Go, которая проставляет ?v=<sha256> у ссылок на css/js (и другие ассеты) в HTML-файлах — для cache-busting статики.

Как работает

  1. Обходит -root и индексирует файлы с разрешёнными расширениями (-ext, по умолчанию css,js).
  2. Находит все .html (папки из -skip пропускаются).
  3. В каждом HTML ищет href/src с ассетами и добавляет/заменяет ?v=<первые N символов sha256> (-len, по умолчанию 8).
  4. Если ассет не найден — ссылка остаётся как есть (с -v пишет в лог).

Ассеты ищутся по имени файла; при коллизии — по самому длинному совпадающему суффиксу пути, затем — по ближайшему к HTML каталогу.

Флаги

Флаг По умолчанию Описание
-root . корень проекта
-dry-run false не писать, только показать
-ext css,js расширения через запятую
-len 8 длина хэша
-v false подробный вывод
-skip .git,node_modules,vendor,.idea,.vscode,dist,build папки, которые не обходить

Пример

go run ./src -root . -v
go run ./src -root ./web -ext css,js,png -len 10 -dry-run

Вывод:

Найдено файлов для версионирования: 12
  /static/css/admin.css  →  web/static/css/admin.css ?v=3f9a1c2b
web/templates/admin.html обновлён

Запуск

go run ./src -root <путь>