UNPKG

1.14 kBtext/coffeescriptView Raw
1'use strict'
2
3jsonFuture = require 'json-future'
4finepack = require 'finepack'
5path = require 'path'
6async = require 'async'
7chalk = require 'chalk'
8
9printMessage = (logger, filename, type, messages) ->
10 color = if type is 'warn' then 'yellow' else 'red'
11 colorize = chalk[color]
12 logger.transport logger.generateMessage type, "#{filename}: #{colorize(message)}" for message in messages
13
14module.exports = (bumped, plugin, cb) ->
15 globalError = false
16
17 async.eachSeries bumped.config.rc.files, (filename, next) ->
18 jsonFuture.loadAsync filename, (err, pkg) ->
19 return cb err if err
20
21 finepack pkg, plugin.opts, (err, newPkg, messages) ->
22 return cb err if err
23 localError = false
24
25 if messages.error.length isnt 0
26 printMessage plugin.logger, filename, 'error', messages.error
27 globalError = true
28 localError = true
29
30 if messages.warn.length isnt 0
31 printMessage plugin.logger, filename, 'warn', messages.warn
32
33 return next(true) if localError
34 jsonFuture.saveAsync filename, newPkg, next
35 , ->
36 cb globalError