Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var
- gulp = require('gulp'),
- fs = require('fs'),
- Client = require('ssh2').Client,
- nodewatch = require('node-watch'),
- ignore = require('ignore'),
- ignoreFiles = [
- '.git',
- 'gulpfile.js',
- 'package.json',
- '.gitignore',
- 'node_modules',
- '.vscode'
- ],
- ig = ignore().add(ignoreFiles);
- gulp.task('watch', function () {
- return nodewatch([__dirname], { recursive: true }, function(evt, name) {
- if(!ig.ignores(name)) {
- console.log('%s changed.', name, evt);
- var conn = new Client();
- conn.on('ready', function() {
- console.log("Connected!");
- if(evt == 'update') {
- var isFile = fs.statSync(name).isFile();
- if(!isFile) {
- conn.exec('mkdir ' + '/var/vmail/Web/merita' + name.replace(__dirname, '').replace(/[\\"]/g, '/').replace(/(\s+)/g, '\\$1'), function(err, stream) {
- if (err) throw err;
- stream.on('data', function(data, stderr) {
- if (stderr)
- console.log('STDERR: ' + data);
- else
- console.log('STDOUT: ' + data);
- }).on('exit', function(code, signal) {
- console.log('Exited with code ' + code);
- });
- });
- } else {
- conn.sftp(function (err, sftp) {
- if ( err ) {
- sftp.end();
- throw err;
- // process.exit( 2 );
- }
- console.log( "- SFTP started" );
- if(evt == 'update') {
- var stats = fs.statSync(name).isFile();
- if(stats) {
- var readStream = fs.createReadStream( name );
- var writeStream = sftp.createWriteStream( "/var/vmail/Web/merita" + name.replace(__dirname, '').replace(/[\\"]/g, '/') );
- }
- }
- if(writeStream) {
- writeStream.on('close',function () {
- console.log( "- file transferred" );
- sftp.end();
- //process.exit( 0 );
- });
- readStream.pipe( writeStream );
- }
- });
- }
- } else if(evt == 'remove') {
- conn.exec('rm -r -f ' + '/var/vmail/Web/merita' + name.replace(__dirname, '').replace(/[\\"]/g, '/').replace(/(\s+)/g, '\\$1'), function(err, stream) {
- if (err) throw err;
- stream.on('data', function(data, stderr) {
- if (stderr)
- console.log('STDERR: ' + data);
- else
- console.log('STDOUT: ' + data);
- }).on('exit', function(code, signal) {
- console.log('Exited with code ' + code, signal);
- });
- });
- }
- }).on('error', function(err){
- console.log( "%s", err );
- })
- .on('keyboard-interactive', function (name, descr, lang, prompts, finish) {
- var password = "<COLOCA_A_SENHA_AQUI>";
- return finish([password]);
- }).connect({
- host: '<COLOCA_O_HOST_AQUI>',
- port: 22,
- username: '<COLOCA_O_USUARIO_AQUI>',
- tryKeyboard: true
- });
- }
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement