Инструмент для удобного манипулирования версиями данных для bem-site.
Установить npm пакет:
$ npm install --save bem-site-snapshot-master
Для данного инструмента возможны две стратегии выполнения:
- Simple
- YDisk (операции с версиями данных будут также выполнены и на Yandex Disk)
Обе стратегии имеют одинаковое API.
Необходимо создать экземпляр класса API перед использованием его методов.
var API = require('bem-site-snapshot-master').Simple,
api = new API(options);
// here you can call instance methods of API class
api.getSnapshots(function (err) {
// TODO implement your handler
});
options
- это объект с полями:
path
- полный путь к папке с данными. (необходимое поле).symlinks
- массив с названиями симлинок (необходимое поле).logger
- настройки модуля логгирования. Более детально про настройки лога можно прочитать здесь.
Для использования API Яндекс Диск также нужно передать соответствующие настройки yandex-disk
:
'yandex-disk': {
user: 'john.smith',
password: '12345678',
namespace: 'test'
}
Возвращает список названий снапшотов.
Аргументы:
- {Function}
callback
функция обратного вызова
Возвращает название снапшота на который указывает данная симлинка
Аргументы:
- {String}
symlink
- название симлинки - {Function}
callback
функция обратного вызова
Получает данные снапшота на который указывает данная симлинка, считывает их и перенаправляет в указанный целевой поток
Аргументы:
- {String}
symlink
- название симлинки - {Stream}
destination
- поток назначения в который будут переданы данные - {Function}
callback
функция обратного вызова
Считывает содержимое data.json файла по названию снапшота
Аргументы:
- {String}
snapshot
- название снапшота - {Function}
callback
функция обратного вызова
Переключает симлинку на папку в указанной версие данных
Аргументы:
- {String}
symlink
- название симлинки - {String}
snapshot
- название снапшота - {Function}
callback
функция обратного вызова
Удаляет снапшот данных по названию снапшота
Агрументы:
- {String}
snapshot
- название снапшота - {Function}
callback
функция обратного вызова
Основная роль snapshot-master это использование в качестве основы для инструмента сборки данных который может быть запущен и управляться из данного модуля.
Для использования snapshot-master в таком режиме необходимо:
- Склонировать репозиторий на файловую систему:
$ git clone https://github.com/bem-site/snapshot-master
- Установить npm зависимости:
$ npm install
- Сгенерировать конфигурационные файлы:
$ npm run config
Конфигурация инструмента находится в 3-х сгенерированных _*.json
файлах в папке config:
- _bse.json
- _config.json
- _tripwire.json
Содержит собственно настройки приложения
path
- полный путь к папке с данными. (необходимое поле).name
- название сервиса. Используется для построения заголовка письма которое рассылается по результатам сборкиsymlinks
- массив с названиями симлинок (необходимое поле).logger
- настройки модуля логгирования. Более детально про настройки лога можно прочитать здесь.cron
- настройки cron модуля для настройки расписания выполнения сборки данных. Более подробно об этой опции можно прочитать здесьyandex-disk
- настройки Яндекс Диска. Необходим только в случае если операции с версиями данных требуется дублировать и на Яндекс Дискеe-mail
- настройки почтовой рассылки для уведомления о создании нового снапшота данных. Более подробно о настройках e-mail можно прочитать здесь
Содержит настройки для модуля tripwire. Данный модуль предназначен для прекращения работы программы в случае достижения установленного лимита потребления оперативной памяти.
Запуск snapshot-master-а выполняется командой:
$ node bin/index.js
Запуск тестов:
npm run mocha
Запуск тестов с вычислением покрытия кода тестами с помощью инструмента istanbul:
npm run istanbul
Проверка синткасиса кода с помощью jshint и jscs
npm run codestyle
Особая благодарность за помощь в разработке:
- Ильченко Николай (http://github.com/tavriaforever)
- Константинова Гела (http://github.com/gela-d)
Разработчик Кузнецов Андрей Серргеевич @tormozz48 Вопросы и предложения присылать по адресу: [email protected]