Promise = require 'bluebird'
fs = Promise.promisifyAll require 'fs-extra'
path = require 'path'
srcDir = "#{__dirname}/src"
distDir = "#{__dirname}/dist"
parseVersion = (versionString)-> [versionString, parseFloat(versionString.replace /\./g, '')]


newestVersion = parseVersion require('../package.json').version

fs.readdirAsync(srcDir).then (files)->
	dirs = files.filter (file)-> fs.statSync("#{srcDir}/#{file}").isDirectory() and path.basename(file).toLowerCase().includes 'simplybind'
	versions = dirs.map (dir)-> parseVersion dir.split('@')[1]
	latestVersion = Math.max.apply null, versions.map (version)-> version[1]
	latestVersion = versions.find (version)-> version[1] is latestVersion
	
	unless newestVersion[1] is latestVersion[1]
		fs.copyAsync("#{srcDir}/SimplyBind@#{latestVersion[0]}", "#{srcDir}/SimplyBind@#{newestVersion[0]}").then ()->
			fs.readFileAsync("#{srcDir}/SimplyBind@#{newestVersion[0]}/deps.json").then (deps)->
				deps = JSON.parse deps
				newDeps = deps.slice().map (dep)-> dep.replace latestVersion[0], newestVersion[0]

				fs.outputFileAsync("#{srcDir}/SimplyBind@#{newestVersion[0]}/deps.json", JSON.stringify newDeps).then ()->
					newAssetsDir = "#{distDir}/bower_components/simplybind/#{newestVersion[0]}"
					assetsSourceDir = path.resolve "#{__dirname}", '../dist'
					
					fs.copyAsync(assetsSourceDir, newAssetsDir)
