From 230fe00c489324cc1f35ede9393aea239c855406 Mon Sep 17 00:00:00 2001 From: Hayden Faulds Date: Thu, 27 Jul 2017 15:39:22 +0100 Subject: [PATCH 1/3] replace grunt service initialisation with bash script --- server-ce/Gruntfile.coffee | 35 ++++------------------------------ server-ce/bin/install-services | 12 ++++++++++++ 2 files changed, 16 insertions(+), 31 deletions(-) create mode 100644 server-ce/bin/install-services diff --git a/server-ce/Gruntfile.coffee b/server-ce/Gruntfile.coffee index fc2c654427..cab7824da4 100644 --- a/server-ce/Gruntfile.coffee +++ b/server-ce/Gruntfile.coffee @@ -120,16 +120,10 @@ module.exports = (grunt) -> installService: (service, callback = (error) ->) -> console.log "Installing #{service.name}" Helpers.cloneGitRepo service, (error) -> - return callback(error) if error? - Helpers.installNpmModules service, (error) -> - return callback(error) if error? - Helpers.rebuildNpmModules service, (error) -> - return callback(error) if error? - Helpers.runGruntInstall service, (error) -> - return callback(error) if error? - console.log "Finished installing #{service.name}" - callback() - + if error? + callback(error) + else + callback() cloneGitRepo: (service, callback = (error) ->) -> repo_src = service.repo @@ -153,27 +147,6 @@ module.exports = (grunt) -> proc.on "close", () -> callback() - - installNpmModules: (service, callback = (error) ->) -> - dir = service.name - proc = spawn "npm", ["install"], stdio: "inherit", cwd: dir - proc.on "close", () -> - callback() - - # work around for https://github.com/npm/npm/issues/5400 - # where binary modules are not built due to bug in npm - rebuildNpmModules: (service, callback = (error) ->) -> - dir = service.name - proc = spawn "npm", ["rebuild"], stdio: "inherit", cwd: dir - proc.on "close", () -> - callback() - - runGruntInstall: (service, callback = (error) ->) -> - dir = service.name - proc = spawn "grunt", ["install"], stdio: "inherit", cwd: dir - proc.on "close", () -> - callback() - checkMake: (callback = (error) ->) -> grunt.log.write "Checking make is installed... " exec "make --version", (error, stdout, stderr) -> diff --git a/server-ce/bin/install-services b/server-ce/bin/install-services new file mode 100644 index 0000000000..528bb0bd9c --- /dev/null +++ b/server-ce/bin/install-services @@ -0,0 +1,12 @@ +#! env bash + +grep 'name:' config/services.js | \ + sed 's/.*name: "\(.*\)",/\1/' | \ + while read service + do + pushd $service && + nvm install && + nvm use && + npm install + popd + done From 2405b80e45c43c48ad0e5cbff17d18a5d498b2fc Mon Sep 17 00:00:00 2001 From: Hayden Faulds Date: Mon, 31 Jul 2017 13:36:18 +0100 Subject: [PATCH 2/3] add postinstall message explaining how to use bin/install-services --- server-ce/Gruntfile.coffee | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/server-ce/Gruntfile.coffee b/server-ce/Gruntfile.coffee index cab7824da4..7a3e8d3ca3 100644 --- a/server-ce/Gruntfile.coffee +++ b/server-ce/Gruntfile.coffee @@ -87,9 +87,11 @@ module.exports = (grunt) -> grunt.registerTask 'install:all', "Download and set up all ShareLaTeX services", [].concat( ("install:#{service.name}" for service in SERVICES) - ) + ).concat(['postinstall']) grunt.registerTask 'install', 'install:all' + grunt.registerTask 'postinstall', 'Explain postinstall steps', () -> + Helpers.postinstallMessage @async() grunt.registerTask 'update:all', "Checkout and update all ShareLaTeX services", ["check:make"].concat( @@ -147,6 +149,17 @@ module.exports = (grunt) -> proc.on "close", () -> callback() + postinstallMessage: (callback = (error) ->) -> + grunt.log.write """ + Services cloned: + #{service.name for service in SERVICES} + To install services run: + $ source bin/install-services + This will install the required node versions and run `npm install` for each service. + See https://github.com/sharelatex/sharelatex/pull/549 for more info. + """ + callback() + checkMake: (callback = (error) ->) -> grunt.log.write "Checking make is installed... " exec "make --version", (error, stdout, stderr) -> From 71927c97f1945585e353963a8f5c8d8bc610db97 Mon Sep 17 00:00:00 2001 From: Hayden Faulds Date: Mon, 31 Jul 2017 13:36:37 +0100 Subject: [PATCH 3/3] add logging to install-services script --- server-ce/bin/install-services | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server-ce/bin/install-services b/server-ce/bin/install-services index 528bb0bd9c..760f0a7edf 100644 --- a/server-ce/bin/install-services +++ b/server-ce/bin/install-services @@ -5,8 +5,11 @@ grep 'name:' config/services.js | \ while read service do pushd $service && + echo "Installing Service $service" && + echo ' installing Node' && nvm install && nvm use && + echo ' installing Dependencies' && npm install popd done