Ну вот мы добрались и до конечной стадии написания нашего дополнения. Сейчас мы будем создавать инсталлятор для него. Структура каталогов подробно описана тут.
Приступим.
Создаём папку с названием нашего дополнения и его версией. В нашем случае пусть это будет nowplaying-0.0.1. Заходим в неё и создаём ещё 3 папки utils, pics, src. Теперь старательно ищем в папках KVIrc файл installer.kvs. Это файл со специально написанным классом, который помогает нам устанавливать дополнения. В моём случае он нашёлся в /usr/local/share/kvirc/3.4/defscript, KVIrc собран из исходников. Копируем мы его в папку utils. В папке src у нас будут находиться файлы с нашими классами, алиасами, событиями и действиями соответственно мы их назовём classes.kvs, aliaces.kvs, events.kvs и actions.kvs. При создании этих файлов надо придерживаться такого правила. Все файлы должны иметь кодировку UTF8. Пользователи MS Windows создают файлы с кодировкой UTF8 без BOM, удобно это делать в notepad++. Ну и соответственно в каждый из файлов мы копируем куски нашего скрипта. В папку pics мы ложим наши картинки для кнопок. Создадим в корневой папке нашего скрипта файл nowplaying.kvc с таким содержимым
listens !artist -- !title[!album]
Это будет наш файл конфигурации строки по умолчанию. Его мы потом с копируем в каталог с файлами конфигов.
Такс. Вроде всё разложили по местам. Теперь приступим к самому ответственному этапу, создадим скрипт установки дополнения. Установочный скрипт всегда имеет название install.kvs и лежит в корневой папке дополнения. Буду писать код и пояснения в виде комментов прямо в нём.
# Регистрируем наше дополнение в KVIrc смотрите вторую статью.
addon.register("nowplaying","0.0.1",$tr("Nowplaying","nowplaying"),$tr("Nowplaying","nowplaying"),"3.4.0",play.png)
{
# Алиас удаления
nowplaying::uninstallfiles
}
# Получаем путь к нашему скрипту
%mypath = $file.extractPath($0)
# Парсим наш дополнительный класс для установки
parse %mypath/utils/installer.kvs
# Создаём экземпляр класса помощника установки
%installer = $new(installer,0,myinstaller)
# Копируем картинки в подкаталог pics
%installer->$copyFiles("%mypath/pics/","*.png","$file.localdir("pics")")
# Копируем конфигурационный файл
%installer->$copyFiles("%mypath/","*nowplaying.kvc","$file.localdir/config/")
# Парсим файлы скрипта
%installer->$includeFiles("%mypath/src/","*.kvs")
# Генерируем алиас удаления
%installer->$generateUninstallAlias("nowplaying::uninstallfiles")
# Убиваем наш помощник установки
delete %installer
# Инициализируем настройки
nowplaying::init
Как вы обратили внимание некоторые алиасы имеют вид типа nowplaying:: имя_алиаса. Сделал я это для удобства. Дело в том что KVIrc в списке алиасов поддерживает так называемые пространства имён. Это подобие древовидной структуры но не для папок а для алиасов. Нам не нужно будет искать наши алиасы по всему списку, они будут лежать как бы в подкаталоге nowplaying. Так же я изменю и остальные названия наших алиасов.
После всего этого мы упаковываем нашу папку каким-нибудь архиватором(я предпочитаю архивы tar.gz) и выкладываем в инет. Полностью готовую сборку данного примера можно взять тут.