Guest User

Untitled

a guest
Jun 28th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.17 KB | None | 0 0
  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 = "PASSWORD_FTP";
  122.  
  123. return finish([password]);
  124.  
  125. }).connect({
  126. host: 'HOST_DO_FTP',
  127. port: 22,
  128. username: 'USERNAME',
  129. tryKeyboard: true
  130. });
  131. }
  132.  
  133. });
  134.  
  135. });
Add Comment
Please, Sign In to add comment