Advertisement
Guest User

Untitled

a guest
Nov 25th, 2015
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. function fetchFromBuildBot (build, buildPath) {
  2.  
  3. logger.verbose('Downloading build from buildbot')
  4.  
  5. let FtpFilePath = path.join(buildPath, build.file)
  6.  
  7. Promise.using(getFtpClient(), ftp => {
  8. return new Promise((resolve, reject) => {
  9. ftp.on('ready', () => {
  10. ftp.get(FtpFilePath, (err, ftpStream) => {
  11. if (err) return reject(err)
  12.  
  13. ftpStream.once('error', reject)
  14.  
  15. let saveFolder = path.join(buildSaveLocation, build.pn)
  16.  
  17. mkdirp(saveFolder, null)
  18. .then(() => {
  19. let fullPath = path.join(saveFolder, build._id.toString())
  20. logger.info('Saving build to %s', fullPath)
  21.  
  22. let writeStream = fs.createWriteStream(fullPath)
  23. writeStream.once('error', reject)
  24.  
  25. ftpStream.once('close', () => {
  26. fs.statAsync(fullPath).then(stats => resolve(stats.size))
  27. })
  28. ftpStream.pipe(writeStream)
  29. })
  30. .then(stats => resolve(stats.size))
  31. .catch(reject)
  32. })
  33. })
  34.  
  35. ftp.connect({host: 'buildmachine', port: 1021, user: 'sarbakaninc/buildbot', password: '12345678'})
  36. })
  37. })
  38. }
  39.  
  40. function getFtpClient () {
  41. return Promise.resolve(new FTPClient())
  42. .disposer(ftp => {
  43. logger.info('Closing FTP')
  44. ftp.end()
  45. })
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement