From 90436bfce8592bc98b7f359ac44509925d181f21 Mon Sep 17 00:00:00 2001 From: "Alexey.Golubev" Date: Fri, 13 May 2016 11:58:01 +0300 Subject: [PATCH] Remove comments and AGPL copyrights from files when buildiing project. --- .gitignore | 4 ++- Gruntfile.js | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile | 30 ++++++++++----------- package.json | 40 ++++++++++++++++++++++++++++ 4 files changed, 130 insertions(+), 17 deletions(-) create mode 100644 Gruntfile.js create mode 100644 package.json diff --git a/.gitignore b/.gitignore index 527e925c..f810a9dc 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,6 @@ license.lic App_Data/ */node_modules FileConverter/Bin -DocService/npm-debug.log \ No newline at end of file +DocService/npm-debug.log +build +node_modules \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 00000000..f47c79be --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,73 @@ +var packageFile = require('./package.json'); + +module.exports = function (grunt) { + + var checkDependencies = {}; + + for(var i of packageFile.npm) { + checkDependencies[i] = { + options: { + install: true, + continueAfterInstall: true, + packageDir: i + } + } + } + + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + + clean: { + options: { + force: true + }, + build: packageFile.build.dest + }, + mkdir: { + build: { + options: { + create: [packageFile.build.dest] + }, + }, + }, + copy: { + main: { + expand: true, + src: packageFile.build.src, + dest: packageFile.build.dest + } + }, + decomment: { + js: packageFile.postprocess + }, + usebanner: { + copyright: { + options: { + position: 'top', + banner: '/*\n' + + ' * (c) Copyright Ascensio System Limited 2010-<%= grunt.template.today("yyyy") %>. All rights reserved\n' + + ' *\n' + + ' * <%= pkg.homepage %> \n' + + ' *\n' + + ' * Version: ' + process.env['PRODUCT_VERSION'] + ' (build:' + process.env['BUILD_NUMBER'] + ')\n' + + ' */\n', + linebreak: true + }, + files: { + src: packageFile.postprocess.src + } + } + }, + checkDependencies: checkDependencies + }); + + grunt.loadNpmTasks('grunt-contrib-clean'); + grunt.loadNpmTasks('grunt-contrib-copy'); + grunt.loadNpmTasks('grunt-mkdir'); + grunt.loadNpmTasks('grunt-decomment'); + grunt.loadNpmTasks('grunt-banner'); + grunt.loadNpmTasks('grunt-check-dependencies'); + + grunt.registerTask('default', ['clean', 'mkdir', 'copy', 'decomment', 'usebanner', 'checkDependencies']); + +}; \ No newline at end of file diff --git a/Makefile b/Makefile index 94c310bc..c666f822 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ OUTPUT_DIR = build OUTPUT = $(OUTPUT_DIR) -NODE_MODULES_DIR = node_modules -NODE_PROJECTS_SRC = Common DocService FileConverter Metrics SpellChecker -NODE_PROJECTS = $(addprefix $(OUTPUT)/, $(NODE_PROJECTS_SRC)) -NODE_PROJECTS_MODULES = $(addsuffix /$(NODE_MODULES_DIR), $(NODE_PROJECTS)) +GRUNT = grunt +GRUNT_FLAGS = --no-color -v + +GRUNT_FILES = Gruntfile.js.out FILE_CONVERTER = $(OUTPUT)/FileConverter/bin FILE_CONVERTER_FILES += ../core/build/lib/linux_64/*.so @@ -31,23 +31,15 @@ TOOLS = $(OUTPUT)/$(TOOLS_DIR)/ LICENSE_FILES = LICENSE.txt 3rd-Party.txt LICENSE = $(addsuffix $(OUTPUT)/, LICENSE_FILES) -all: $(NODE_PROJECTS_MODULES) $(FILE_CONVERTER) $(SPELLCHECKER_DICTIONARIES) $(TOOLS) $(SCHEMA) $(LICENSE) - -$(NODE_PROJECTS_MODULES): $(NODE_PROJECTS) - cd $(@D) && \ - npm install +all: $(FILE_CONVERTER) $(SPELLCHECKER_DICTIONARIES) $(TOOLS) $(SCHEMA) $(LICENSE) -$(NODE_PROJECTS): - mkdir -p $(OUTPUT) && \ - cp -r -t $(OUTPUT) $(NODE_PROJECTS_SRC) - -$(FILE_CONVERTER): $(NODE_PROJECTS) +$(FILE_CONVERTER): $(GRUNT_FILES) mkdir -p $(FILE_CONVERTER) $(HTML_FILE_INTERNAL) && \ cp -r -t $(FILE_CONVERTER) $(FILE_CONVERTER_FILES) && \ cp -r -t $(HTML_FILE_INTERNAL) $(HTML_FILE_INTERNAL_FILES) && \ sed 's,../../..,/var/www/onlyoffice/documentserver,' -i $(FILE_CONVERTER)/DoctRenderer.config -$(SPELLCHECKER_DICTIONARIES): $(NODE_PROJECTS) +$(SPELLCHECKER_DICTIONARIES): $(GRUNT_FILES) mkdir -p $(SPELLCHECKER_DICTIONARIES) && \ cp -r -t $(SPELLCHECKER_DICTIONARIES) $(SPELLCHECKER_DICTIONARY_FILES) @@ -63,7 +55,13 @@ $(TOOLS): $(LICENSE): mkdir -p $(OUTPUT) && \ cp -r -t $(OUTPUT) $(LICENSE_FILES) + +$(GRUNT_FILES): + cd $(@D) && \ + npm install && \ + $(GRUNT) $(GRUNT_FLAGS) + echo "Done" > $@ clean: - rm -rf $(OUTPUT) + rm -rf $(OUTPUT) $(GRUNT_FILES) diff --git a/package.json b/package.json new file mode 100644 index 00000000..01878a04 --- /dev/null +++ b/package.json @@ -0,0 +1,40 @@ +{ + "name": "builder", + "version": "0.0.0", + "homepage": "http://www.teamlab.com", + "private": true, + "build": { + "src": [ + "./**/sources/*.js", + "./Common/package.json", + "./DocService/package.json", + "./FileConverter/package.json", + "./Metrics/package.json", + "./SpellChecker/package.json", + "./Common/config/*.json" + ], + "dest": "./build" + }, + "postprocess": { + "src": [ + "./build/**/sources/*.js" + ], + "dest": "./" + }, + "npm": [ + "./build/Common", + "./build/DocService", + "./build/FileConverter", + "./build/Metrics", + "./build/SpellChecker" + ], + "dependencies": { + "grunt": "^0.4.5", + "grunt-banner": "^0.6.0", + "grunt-check-dependencies": "^0.12.0", + "grunt-contrib-clean": "^1.0.0", + "grunt-contrib-copy": "^1.0.0", + "grunt-decomment": "^0.2.4", + "grunt-mkdir": "^1.0.0" + } +}