Tools for suitable snapshot manipulation
At first you should install npm package by:
$ npm install --save bem-site-snapshot-master
2 different strategies can be used via this package:
- Simple
- YDisk (snapshot operations performs also on Yandex Disk)
Both strategies have the same API.
You should create instance of snapshot master API class before using its methods.
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 - is object with available fields:
path- full path to operation folder. (required).symlinks- array with available symlink names (required).logger- settings for logger module. See Logger for more details.
For YDisk API also yandex-disk options section needed:
'yandex-disk': {
user: 'john.smith',
password: '12345678',
namespace: 'test'
}
Returns list of snapshot folder names.
Arguments:
- {Function}
callbackfunction
Returns name of snapshot which given symlink is pointed to
Arguments:
- {String}
symlink- name of symlink - {Function}
callbackfunction
Retrieves data of snapshot which given symlink is pointed to and pipes it to destination stream
Arguments:
- {String}
symlink- name of symlink - {Stream}
destination- destination stream - {Function}
callbackfunction
Reads content of data.json file of given snapshot
Arguments:
- {String}
snapshot- name of given snapshot - {Function}
callbackfunction
Switch symlink to folder with given snapshot name
Arguments:
- {String}
symlink- name of symlink - {String}
snapshot- name of given snapshot - {Function}
callbackfunction
Removes snapshot by given snapshot name
Arguments:
- {String}
snapshot- name of given snapshot - {Function}
callbackfunction
Run tests:
npm run mocha
Run tests with istanbul coverage calculation:
npm run istanbul
Run codestyle verification (jshint and jscs)
npm run codestyle
Special thanks to:
- Nikolay Ilchenko (http://github.com/tavriaforever)
- Konstantinova Gela (http://github.com/gela-d)
Maintainer @tormozz48 Please send your questions and proposals to: tormozz48@gmail.com

