From 1bf98f5b8dd47b0d8df3f8169e00eab2790aa1cf Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 14 Feb 2014 18:54:00 -0700 Subject: [PATCH] Add check-licenses task and break license-overrides into their own file --- build/tasks/check-licenses-task.coffee | 25 +++++++++++++ ...-tasks.coffee => license-overrides.coffee} | 35 +------------------ build/tasks/report-licenses-task.coffee | 32 +++++++++++++++++ 3 files changed, 58 insertions(+), 34 deletions(-) create mode 100644 build/tasks/check-licenses-task.coffee rename build/tasks/{license-tasks.coffee => license-overrides.coffee} (61%) create mode 100644 build/tasks/report-licenses-task.coffee diff --git a/build/tasks/check-licenses-task.coffee b/build/tasks/check-licenses-task.coffee new file mode 100644 index 000000000..87e1c3c70 --- /dev/null +++ b/build/tasks/check-licenses-task.coffee @@ -0,0 +1,25 @@ + +module.exports = (grunt) -> + grunt.registerTask 'check-licenses', 'Report the licenses of all dependencies', -> + legalEagle = require 'legal-eagle' + {size, keys} = require 'underscore-plus' + done = @async() + + options = + path: process.cwd() + omitPermissive: true + overrides: require './license-overrides' + + legalEagle options, (err, summary) -> + if err? + console.error(err) + exit 1 + + if size(summary) + console.error "Found dependencies without permissive licenses:" + for name in keys(summary).sort() + console.error "#{name}" + console.error " License: #{summary[name].license}" + console.error " Repository: #{summary[name].repository}" + exit 1 + done() diff --git a/build/tasks/license-tasks.coffee b/build/tasks/license-overrides.coffee similarity index 61% rename from build/tasks/license-tasks.coffee rename to build/tasks/license-overrides.coffee index 4064c54de..a34eb2fd9 100644 --- a/build/tasks/license-tasks.coffee +++ b/build/tasks/license-overrides.coffee @@ -1,37 +1,4 @@ - -module.exports = (grunt) -> - grunt.registerTask 'report-licenses', 'Report the licenses of all dependencies', -> - legalEagle = require 'legal-eagle' - done = @async() - - options = - path: process.cwd() - overrides: ManualOverrides - - legalEagle options, (err, summary) -> - if err? - console.error(err) - exit 1 - console.log getSummaryText(summary) - done() - -getSummaryText = (summary) -> - {keys} = require 'underscore-plus' - text = "" - names = keys(summary).sort() - for name in names - {license, source, sourceText} = summary[name] - text += "## #{name}\n\n" - text += "* License: #{license}\n" - text += "* License Source: #{source}\n" if source? - if sourceText? - text += "* Source Text:\n" - for line in sourceText.split('\n') - text += "> #{line}\n" - text += '\n' - text - -ManualOverrides = +module.exports = 'underscore@1.4.4': repository: 'https://github.com/documentcloud/underscore' license: 'MIT' diff --git a/build/tasks/report-licenses-task.coffee b/build/tasks/report-licenses-task.coffee new file mode 100644 index 000000000..02c65a3ee --- /dev/null +++ b/build/tasks/report-licenses-task.coffee @@ -0,0 +1,32 @@ + +module.exports = (grunt) -> + grunt.registerTask 'report-licenses', 'Report the licenses of all dependencies', -> + legalEagle = require 'legal-eagle' + done = @async() + + options = + path: process.cwd() + overrides: require './license-overrides' + + legalEagle options, (err, summary) -> + if err? + console.error(err) + exit 1 + console.log getSummaryText(summary) + done() + +getSummaryText = (summary) -> + {keys} = require 'underscore-plus' + text = "" + names = keys(summary).sort() + for name in names + {license, source, sourceText} = summary[name] + text += "## #{name}\n\n" + text += "* License: #{license}\n" + text += "* License Source: #{source}\n" if source? + if sourceText? + text += "* Source Text:\n" + for line in sourceText.split('\n') + text += "> #{line}\n" + text += '\n' + text