Advertisement
Guest User

Untitled

a guest
Jul 18th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. ///<reference path="typings/index.d.ts" />
  2. 'use strict'
  3.  
  4. import * as fs from 'fs'
  5. import * as path from 'path'
  6. import * as events from 'events'
  7. import * as client from 'ftp'
  8.  
  9. let conn = new client()
  10.  
  11. let em = new events.EventEmitter()
  12. em.on('upload',(filename)=>{
  13. console.log('uploading:',filename)
  14. })
  15.  
  16. conn.connect({
  17. host:'10.27.98.131',
  18. user:'cms',
  19. password:'!@qwas#$',
  20. })
  21.  
  22. conn.on('ready',()=>{
  23.  
  24. })
  25.  
  26. conn.connect({
  27. host:'10.27.98.131',
  28. user:'cms',
  29. password:'!@qwas#$',
  30. })
  31.  
  32. const readDir = (dirname)=>{
  33. return new Promise((suc,fail)=>{
  34. fs.readdir(dirname,(err,fnames)=>{
  35. if(err)fail(err)
  36. suc(fnames)
  37. })
  38. })
  39. }
  40.  
  41. function isDirectory(fname:string){
  42. return new Promise((suc,fail)=>{
  43. fs.stat(fname,(err,state)=>{
  44. if(err)fail(err)
  45. suc(state.isDirectory())
  46. })
  47. })
  48. }
  49.  
  50. let filelen = 0
  51.  
  52. async function parseDir(dirname){
  53. let filenames;
  54. try{
  55. filenames = await readDir(dirname)
  56. for(let i=0;i<filenames.length;i++){
  57. let fname = path.resolve(dirname,filenames[i])
  58. let isDir = await isDirectory(fname)
  59. if(!isDir){
  60. filelen++;
  61. em.emit('upload',fname)
  62. }
  63. else{
  64. console.log('dir',fname)
  65. parseDir(fname)
  66. }
  67. }
  68. }
  69. catch(e){
  70. console.log('parseDir err',e)
  71. }
  72. }
  73.  
  74. async function main(){
  75. if(process.argv[2]){
  76. const dir = process.argv[2]
  77. await parseDir(dir)
  78. }
  79. }
  80.  
  81.  
  82. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement