
import startImap from './imap'
import * as net from 'net'

const user: IinputData = process.env;
const listenFolder = process.argv [2] === 'null' ? null : process.argv [2]
const saveFolder = process.argv [3] === 'null' ? null : process.argv [3]

let status = false
let busy = false

const sendStatus = ( _status: boolean ) => {
	status = _status
	process.send ( _status )
}

const imap = new startImap ( user, listenFolder, true, message => {
	
	process.send ( message )
	
}, sendStatus, null )

const sendMail = ( buffer: Buffer ) => {

	return imap.save ( buffer, saveFolder, err => {
		busy = false
		if ( err ) {
			return sendStatus ( false )
		}
		return sendStatus ( true )
	})
}

process.on ( 'message', ( cmd ) => {
	if ( typeof cmd === 'string') {
		if ( cmd === 'busy') {
			
			return imap.checkBusy ()
		}
		return console.log ( `imap process.on message ERROR unknow command!`, cmd )
	}
	
	if ( !saveFolder || ! saveFolder.length )
		return console.log ('========> imapSub ERROR, this have not saveFolder but looks try send mail!')
	
	const data = new Buffer( cmd )
	sendMail ( data )
	
})