Creation of install.kvs
Материал из IRC клиент KVIrc.
В этой статье я опишу создание install.kvs. Этот файл является инсталлером вашего скриптового дополнения. Если вы написали свой скрипт и хотите дать его другу, то вам будет необходимо грамотно создать этот файл.
Содержание |
[править] Структура install.kvs
По сути этот файл является обычным скриптом на язык KVS. Но обязательно наличие в нем нескольких секций.
- Регистрация аддона
- Копирование файлов данных скрипта (опционально)
- Инициализация алиасов, событий и др. данных скрипта
[править] Регистрация дополнения
За регистрацию дополнения отвечает команда
addon.register [-f|--force] [-n|--no-uninstall] [-q|--quiet] (<id скрипта>,
<версия>,<видимое_имя>,<описание>,
<минимальная версия kvirc>[,<иконка>])
{
<команды удаления>
}
Если задан флаг -f|--force то аддон будет установлен даже если существует установленный аддон более поздней версии. Используйте этот флаг при отладке, но не оставляйте его при финальном релизе.
Флаг -n|--no-uninstall указывает на то, что установленная версия аддона не должна удаляться.
Стандартный флаг -q|--quiet отключает показ ошибок при установке.
<id скрипта> это уникальный идентификатор скрипта в системе. Не может быть установлено 2 аддона с одинаковыми id. Будьте осторожны при выборе id чтобы избежать конфликтов со скриптами других разработчиков.
<версия> - версия вашего скрипта в формате x.y.z
<видимое_имя> - имя скрипта, которое будет видеть пользователь
<описание> - краткое (1 строчка) описание скрипта
<минимальная версия kvirc> - минимальная версия kvirc, на которой возможно функционирование скрипта. Например 3.2.1. Если вы зависите от CVS функций то вы можете добавить дату исходных кодов в виде 3.2.1.20060410 (10 апреля 2006 года)
<иконка> - идентификатор (номер или имя файла) иконки, которая будет показываться в диалоге уравления дополнениями.
<команды удаления> - команды, которые должны выполнятсья при удалении скрипта. Они должны удалить все события, алиасы, файлы и другое, созданное скриптом.
Пример рабочей команды:
addon.register (myscript,0.0.1,"My super script","Just a test",3.2.1,myscript.png)
{
myscript::uninstall
myscript::uninstallfiles
}
Она зарегистрирует скрипт с id myscript версии 0.0.1.
[править] Копирование файлов
Для этого создан готовый файл, который называется installer.kvs. Найти его можно в дистрибутиве KVIrc или в чьем-либо готовом дополнении. Опишу как им пользоваться.
- Создайте в папке с вашим будущим аддоном папку utils
- Поместите туда installer.kvs
- Создайте в папке с аддоном подпапки с данными.
- В своем install.kvs напишите
# Получение пути, из которого запущен аддон
%mypath = $file.extractPath($0)
# Включение файла с классом инсталлера
parse %mypath/utils/installer.kvs
# Создание объекста класса инсталлера
%installer = $new(installer,0,myinstaller)
# Копирование файлов
# картинок
%installer->$copyFiles("%mypath/pics/","*.png","$file.localdir("pics")")
# переводов
%installer->$copyFiles("%mypath/locale/","*.mo","$file.localdir("locale")")
# документации
%installer->$copyFiles("%mypath/help/en/myscript/","*.html","$file.localdir("help/en/myscript")")
# генерация
%installer->$generateUninstallAlias("myscript::uninstallfiles")
# удаление инсталлера
delete %installer
Таким образом файлы *.png из папки pics будут скопированы в папку с катинками, файлы из папки locale - в папку с переводами, будет скопирован хелп. И в конце будет создан алиас myscript::uninstallfiles, при вызове которого все скопированные файлы будут удалены.
[править] Создание алиасов
Подробную доументацию по языку KVS вы можете найди в соответствующей статье. Напомню лишь что создают алиас командой
alias(ИМЯ_АЛИАСА) {
команда1
команда2
.....
}
А удаляют командой
alias(ИМЯ_АЛИАСА) {}