Advertisement
Guest User

Untitled

a guest
Aug 17th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var
  2.     gulp = require('gulp'),
  3.     fs = require('fs'),
  4.     Client = require('ssh2').Client,
  5.     nodewatch = require('node-watch'),
  6.     ignore = require('ignore'),
  7.     ignoreFiles = [
  8.         '.git',
  9.         'gulpfile.js',
  10.         'package.json',
  11.         '.gitignore',
  12.         'node_modules',
  13.         '.vscode'
  14.     ],
  15.     ig = ignore().add(ignoreFiles);
  16.  
  17.  
  18. gulp.task('watch', function () {
  19.  
  20.     return nodewatch([__dirname], { recursive: true }, function(evt, name) {
  21.  
  22.         if(!ig.ignores(name)) {
  23.             console.log('%s changed.', name, evt);
  24.  
  25.             var conn = new Client();
  26.  
  27.             conn.on('ready', function() {
  28.  
  29.                 console.log("Connected!");
  30.  
  31.                 if(evt == 'update') {
  32.  
  33.                     var isFile = fs.statSync(name).isFile();
  34.  
  35.                     if(!isFile) {
  36.                        
  37.                         conn.exec('mkdir ' + '/var/vmail/Web/merita' + name.replace(__dirname, '').replace(/[\\"]/g, '/').replace(/(\s+)/g, '\\$1'), function(err, stream) {
  38.                            
  39.                             if (err) throw err;
  40.  
  41.                             stream.on('data', function(data, stderr) {
  42.                                 if (stderr)
  43.                                     console.log('STDERR: ' + data);
  44.                                 else
  45.                                     console.log('STDOUT: ' + data);
  46.  
  47.                             }).on('exit', function(code, signal) {
  48.  
  49.                                 console.log('Exited with code ' + code);
  50.  
  51.                             });
  52.  
  53.                         });
  54.  
  55.                     } else {
  56.  
  57.                         conn.sftp(function (err, sftp) {
  58.  
  59.                             if ( err ) {
  60.                                 sftp.end();
  61.                                
  62.                                 throw err;
  63.                                
  64.                                 // process.exit( 2 );
  65.                             }
  66.        
  67.                             console.log( "- SFTP started" );
  68.        
  69.                             if(evt == 'update') {
  70.                                 var stats = fs.statSync(name).isFile();
  71.        
  72.                                 if(stats) {
  73.                                     var readStream = fs.createReadStream( name );
  74.                                     var writeStream = sftp.createWriteStream( "/var/vmail/Web/merita" + name.replace(__dirname, '').replace(/[\\"]/g, '/') );
  75.                                 }
  76.        
  77.                             }
  78.        
  79.                             if(writeStream) {
  80.  
  81.                                 writeStream.on('close',function () {
  82.                                     console.log( "- file transferred" );
  83.                                     sftp.end();
  84.                                     //process.exit( 0 );
  85.                                 });
  86.        
  87.                                 readStream.pipe( writeStream );
  88.                             }
  89.  
  90.                         });
  91.  
  92.                     }
  93.  
  94.                 } else if(evt == 'remove') {
  95.  
  96.                     conn.exec('rm -r -f ' + '/var/vmail/Web/merita' + name.replace(__dirname, '').replace(/[\\"]/g, '/').replace(/(\s+)/g, '\\$1'), function(err, stream) {
  97.                        
  98.                         if (err) throw err;
  99.  
  100.                         stream.on('data', function(data, stderr) {
  101.                             if (stderr)
  102.                                 console.log('STDERR: ' + data);
  103.                             else
  104.                                 console.log('STDOUT: ' + data);
  105.  
  106.                         }).on('exit', function(code, signal) {
  107.  
  108.                             console.log('Exited with code ' + code, signal);
  109.  
  110.                         });
  111.  
  112.                     });
  113.  
  114.                 }
  115.  
  116.             }).on('error', function(err){
  117.                 console.log( "%s", err );
  118.             })
  119.             .on('keyboard-interactive', function (name, descr, lang, prompts, finish) {
  120.  
  121.                 var password = "<COLOCA_A_SENHA_AQUI>";
  122.  
  123.                 return finish([password]);
  124.            
  125.             }).connect({
  126.                 host: '<COLOCA_O_HOST_AQUI>',
  127.                 port: 22,
  128.                 username: '<COLOCA_O_USUARIO_AQUI>',
  129.                 tryKeyboard: true
  130.             });
  131.         }
  132.  
  133.     });
  134.  
  135. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement