Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function fetchFromBuildBot (build, buildPath) {
- logger.verbose('Downloading build from buildbot')
- let FtpFilePath = path.join(buildPath, build.file)
- Promise.using(getFtpClient(), ftp => {
- return new Promise((resolve, reject) => {
- ftp.on('ready', () => {
- ftp.get(FtpFilePath, (err, ftpStream) => {
- if (err) return reject(err)
- ftpStream.once('error', reject)
- let saveFolder = path.join(buildSaveLocation, build.pn)
- mkdirp(saveFolder, null)
- .then(() => {
- let fullPath = path.join(saveFolder, build._id.toString())
- logger.info('Saving build to %s', fullPath)
- let writeStream = fs.createWriteStream(fullPath)
- writeStream.once('error', reject)
- ftpStream.once('close', () => {
- fs.statAsync(fullPath).then(stats => resolve(stats.size))
- })
- ftpStream.pipe(writeStream)
- })
- .then(stats => resolve(stats.size))
- .catch(reject)
- })
- })
- ftp.connect({host: 'buildmachine', port: 1021, user: 'sarbakaninc/buildbot', password: '12345678'})
- })
- })
- }
- function getFtpClient () {
- return Promise.resolve(new FTPClient())
- .disposer(ftp => {
- logger.info('Closing FTP')
- ftp.end()
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement