Skip to content

Latest commit

 

History

History
105 lines (72 loc) · 6.41 KB

README.md

File metadata and controls

105 lines (72 loc) · 6.41 KB

Download latest

download_latest.bat — это скрипт для автоматического скачивания последних релизов программ с GitHub по заданным шаблонам. Он использует GitHub CLI (gh) и SQLite для хранения и управления списком репозиториев и шаблонов загрузки. Этот инструмент полезен для автоматизации обновлений, особенно когда необходимо загружать последнюю версию релизов для определённых платформ или конфигураций, таких как win-x64, portable, и т.д.

Для чего это надо

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

Возможности

  • Скачивание релизов с GitHub по шаблонам (pattern) с использованием CLI команды gh release download.
  • Использование базы данных SQLite для хранения списка репозиториев и шаблонов для различных программ.
  • Автоматическое создание каталогов для загрузки, если они отсутствуют.
  • Простое добавление новых репозиториев для автоматического обновления через SQLite.

Требования

  1. GitHub CLI (gh) — Убедитесь, что GitHub CLI установлен и авторизован:

    gh auth login

    Скачайте и установите GitHub CLI, если он отсутствует: GitHub CLI.

  2. SQLite — Убедитесь, что SQLite доступен из командной строки. Скачайте и установите SQLite, если необходимо: SQLite.

Настройка

Шаг 1: Создайте базу данных SQLite

Создайте базу данных repositories.db и инициализируйте таблицу repos для хранения списка репозиториев. Для этого выполните следующий SQL-код, сохранив его в файле create_db.sql и запустив:

CREATE TABLE IF NOT EXISTS repos (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    repo_url TEXT NOT NULL,
    pattern TEXT NOT NULL,
    download_dir TEXT NOT NULL DEFAULT 'C:\Downloads'
);

-- Пример добавления данных в таблицу
INSERT INTO repos (name, repo_url, pattern) VALUES
    ('TeXstudio', 'texstudio-org/texstudio', '*win-portable-qt6.zip'),
    ('PowerShell', 'PowerShell/PowerShell', '*win-x64.zip'),
    ('yt-dlp', 'yt-dlp/yt-dlp', '*win64.zip');

Создайте базу и заполните её данными:

sqlite3 repositories.db < create_db.sql

Шаг 2: Настройка кодировки UTF-8 в Windows (опционально)

Рекомендуется включить UTF-8 в консоли Windows, чтобы избежать проблем с отображением символов:

  1. Откройте Панель управленияЧасы и регионРегиональные параметры.
  2. На вкладке Административные параметры поставьте галочку на Использовать Unicode UTF-8 для поддержки языков во всем мире и перезагрузите компьютер.

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

  1. Поместите download_latest.bat и repositories.db в одну директорию.
  2. Запустите download_latest.bat для автоматического скачивания последней версии релизов для всех программ, указанных в базе данных.

Скрипт выполнит следующие шаги для каждого репозитория:

  • Считает параметры из базы данных SQLite.
  • Сформирует и выполнит команду gh release download с шаблоном pattern и каталогом загрузки download_dir.
  • В случае успешной загрузки файл появится в указанном каталоге.

Добавление новых репозиториев

Чтобы добавить новые репозитории или обновить шаблоны, используйте SQLite команду:

INSERT INTO repos (name, repo_url, pattern, download_dir) 
VALUES ('Название программы', 'владелец/репозиторий', 'шаблон_файла', 'директория_для_загрузки');

Например, для добавления программы example-tool с паттерном *win-x64.zip в стандартный каталог:

INSERT INTO repos (name, repo_url, pattern) 
VALUES ('ExampleTool', 'example-owner/example-tool', '*win-x64.zip');

Пример вывода

При запуске download_latest.bat, скрипт выведет информацию о каждом скачивании, например:

Загрузка последней версии для texstudio-org/texstudio с паттерном *win-portable-qt6.zip
Успешно загружено в C:\Downloads
Загрузка последней версии для yt-dlp/yt-dlp с паттерном *win64.zip
Успешно загружено в C:\Downloads

Зависимости

Лицензия

Этот проект распространяется под лицензией MIT. Пожалуйста, ознакомьтесь с файлом LICENSE для получения дополнительной информации.