UNPKG

generator-fatarrow

Version:
70 lines (53 loc) 1.79 kB
bower = require 'bower' fs = require 'fs' q = require 'q' path = require 'path' {BOWER_DIRECTORY, BOWER_FILE} = require '../constants' {BOWER_COMPONENTS} = require '../../config/bower' pkg = require '../../package.json' module.exports = (gulp, plugins) -> -> {onError} = require('../events') plugins # we only want the bower task to run ones unless require('../options').firstRun deferred = q.defer() deferred.resolve() return deferred options = directory: BOWER_DIRECTORY bowerOptions = forceLatest: true components = [] urlExpression = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi urlRegEx = new RegExp urlExpression do -> bowerJson = _comment: 'THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.' name: pkg.name version: pkg.version devDependencies: {} compo = {} for component, value of BOWER_COMPONENTS for version, componentTypes of value bowerJson.devDependencies[component] = version for componentType, files of componentTypes isArray = Array.isArray files filesToAdd = if isArray then files else [files] filesToAdd = filesToAdd.map (file) -> path.join component, file key = path.join component, componentType compo[key] = [] if not compo[key] compo[key] = compo[key].concat filesToAdd fs.writeFile BOWER_FILE, JSON.stringify bowerJson, {}, '\t' for component, value of BOWER_COMPONENTS for version, files of value hasVersion = !!version if !hasVersion components.push component continue isUrl = version.match urlRegEx if isUrl components.push version continue components.push "#{component}##{version}" bower .commands.install components, bowerOptions, options .on 'error', onError