UNPKG

aws-commons

Version:

A collection of small utilities to manage AWS services and actions

75 lines (60 loc) 1.97 kB
#!/usr/bin/env node /** * @class S3Watcher * * @author: darryl.west@raincitysoftware.com * @created: 4/28/14 11:28 AM */ var VERSION = '0.1.1', path = require('path'), dash = require('lodash' ), parser = require('commander' ), S3BucketWatch = require('../lib/S3BucketWatch' ), AWSCommonsFactory = require('../lib/AWSCommonsFactory'); var S3Watcher = function() { 'use strict'; var s3watcher = this, log = require('simple-node-logger' ).createSimpleLogger(), opts = { log:log, keyfile:path.join( __dirname, 'keys.enc' ) }, factory = AWSCommonsFactory.createInstance( opts ), watcher, options, referenceList; options = parser .version( VERSION ) .option('-b --bucket <bucket>', 'set the bucket name (required)') .parse( process.argv ); log.info('version: ', VERSION); this.run = function() { if (!options.bucket) { parser.outputHelp(); log.error('bucket name is required...'); return; } var opts = { log:log, s3:factory.createS3Connection(), bucket:options.bucket }; watcher = new S3BucketWatch( opts ); watcher.on('listAvailable', function(size) { if (!referenceList) { referenceList = watcher.getContentList(); log.info('reference list size: ', dash.size( referenceList )); } else if (size !== dash.size( referenceList )) { log.info('list size changed: ', dash.size( referenceList ), ' is now ', size); referenceList = watcher.getContentList(); } }); // set listeners... watcher.on('change', function(item, action) { log.info( item.key, ' was ', action); log.info( item ); }); watcher.start(); }; }; new S3Watcher().run();