@danielkalen/simplybind
Version:
Magically simple, framework-less one-way/two-way data binding for frontend/backend in ~5kb.
28 lines (21 loc) • 1.37 kB
text/coffeescript
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)