filip
Version:
Manage differential snapshots for zfs pools
53 lines (51 loc) • 2.5 kB
JavaScript
var env = process.env;
var optimist = require('optimist');
var send = require('../snapshot-send');
var argv = optimist
.usage('Send a snapshot to remote storage.\nUsage: filip snapshot-send [options]')
.describe('zfs-bin', 'Path to zfs binary')
.describe('zfs-sudo', 'Use sudo when performing ZFS operations (env: FILIP_ZFS_SUDO)')
.describe('pool-uuid', 'Your unique filip pool uuid. (env: FILIP_POOL_UUID)')
.describe('pg-conn', 'Postgres connection string (env: FILIP_PG_CONN)')
.describe('log-file-path', 'Winston file transport path (env: FILIP_LOG_FILE_PATH)')
.describe('log-file-size', 'Winston file transport size in MB (env: FILIP_LOG_FILE_SIZE)')
.describe('log-file-limit', 'Winston file transport rotate limit (env: FILIP_LOG_FILE_LIMIT)')
.describe('snapshot-uuid', 'Optional snapshot uuid to sync (env: FILIP_SNAPSHOT_UUID)')
.describe('aws-key', 'AWS Key (env: FILIP_AWS_KEY)')
.describe('aws-secret', 'AWS Secret (env: FILIP_AWS_SECRET)')
.describe('aws-region', 'AWS region for your bucket (env: FILIP_AWS_REGION)')
.describe('s3-bucket', 'S3 Bucket Name (env: FILIP_S3_BUCKET)')
.describe('s3-part-size', 'S3 part size for multi-part uploads (env: FILIP_S3_PART_SIZE')
.describe('s3-part-concurrency', 'S3 parts to send concurrently (env: FILIP_S3_PART_CONCURRENCY)')
.describe('gpg-id', 'GPG ID to encrypt your backups (env: FILIP_GPG_ID)')
.describe('gpg-bin', 'Path to gpg binary')
.describe('lzop-bin', 'Path to lzop binary')
.default('zfs-bin', 'zfs')
.default('zfs-sudo', true)
.default('pool-uuid', env.FILIP_POOL_UUID)
.default('pg-conn', env.FILIP_PG_CONN)
.default('log-file-path', env.FILIP_LOG_FILE_PATH)
.default('log-file-size', env.FILIP_LOG_FILE_SIZE)
.default('log-file-limit', env.FILIP_LOG_FILE_LIMIT)
.default('aws-key', env.FILIP_AWS_KEY)
.default('aws-secret', env.FILIP_AWS_SECRET)
.default('aws-region', env.FILIP_AWS_REGION)
.default('s3-bucket', env.FILIP_S3_BUCKET)
.default('s3-part-size', env.FILIP_S3_PART_SIZE)
.default('s3-part-concurrency', env.FILIP_S3_PART_CONCURRENCY)
.default('gpg-id', env.FILIP_GPG_ID)
.default('gpg-bin', 'gpg')
.default('lzop-bin', 'lzop')
.demand('aws-key')
.demand('aws-secret')
.demand('pool-uuid')
.demand('pg-conn')
.demand('s3-bucket')
.wrap(120)
.argv;
module.exports = function() {
send(argv, function(err) {
if(err) return process.exit(1);
return process.exit(0);
});
};