Check that make is installed before installing modules that need compiling

This commit is contained in:
James Allen 2014-02-23 11:53:46 +00:00
parent 9b4d7e65de
commit 74a9c99569

View file

@ -62,10 +62,10 @@ module.exports = (grunt) ->
"Misc": [ "Misc": [
"help" "help"
] ]
"Install tasks": ("install:#{service.name}" for service in SERVICES).concat(["install:all", "install"]) "Install tasks": ("install:#{service.name}" for service in SERVICES).concat(["install:all", "install", "install:config"])
"Update tasks": ("update:#{service.name}" for service in SERVICES).concat(["update:all", "update"]) "Update tasks": ("update:#{service.name}" for service in SERVICES).concat(["update:all", "update"])
"Config tasks": ["install:config"] "Config tasks": ["install:config"]
"Checks": ["check", "check:redis", "check:latexmk"] "Checks": ["check", "check:redis", "check:latexmk", "check:s3", "check:make"]
for service in SERVICES for service in SERVICES
do (service) -> do (service) ->
@ -80,10 +80,14 @@ module.exports = (grunt) ->
grunt.registerTask 'install:config', "Copy the example config into the real config", () -> grunt.registerTask 'install:config', "Copy the example config into the real config", () ->
Helpers.installConfig @async() Helpers.installConfig @async()
grunt.registerTask 'install:all', "Download and set up all ShareLaTeX services", grunt.registerTask 'install:all', "Download and set up all ShareLaTeX services",
("install:#{service.name}" for service in SERVICES).concat(["install:config"]) ["check:make"].concat(
("install:#{service.name}" for service in SERVICES)
).concat(["install:config"])
grunt.registerTask 'install', 'install:all' grunt.registerTask 'install', 'install:all'
grunt.registerTask 'update:all', "Checkout and update all ShareLaTeX services", grunt.registerTask 'update:all', "Checkout and update all ShareLaTeX services",
["check:make"].concat(
("update:#{service.name}" for service in SERVICES) ("update:#{service.name}" for service in SERVICES)
)
grunt.registerTask 'update', 'update:all' grunt.registerTask 'update', 'update:all'
grunt.registerTask 'run', "Run all of the sharelatex processes", ['concurrent:all'] grunt.registerTask 'run', "Run all of the sharelatex processes", ['concurrent:all']
grunt.registerTask 'run:all', 'run' grunt.registerTask 'run:all', 'run'
@ -97,6 +101,8 @@ module.exports = (grunt) ->
Helpers.checkLatexmk @async() Helpers.checkLatexmk @async()
grunt.registerTask "check:s3", "Check that Amazon S3 credentials are configured", () -> grunt.registerTask "check:s3", "Check that Amazon S3 credentials are configured", () ->
Helpers.checkS3 @async() Helpers.checkS3 @async()
grunt.registerTask "check:make", "Check that make is installed", () ->
Helpers.checkMake @async()
grunt.registerTask "check", "Check that you have the required dependencies installed", ["check:redis", "check:latexmk", "check:s3"] grunt.registerTask "check", "Check that you have the required dependencies installed", ["check:redis", "check:latexmk", "check:s3"]
Helpers = Helpers =
@ -244,4 +250,26 @@ module.exports = (grunt) ->
grunt.log.write "OK." grunt.log.write "OK."
callback() callback()
checkMake: (callback = (error) ->) ->
grunt.log.write "Checking make is installed... "
exec "make --version", (error, stdout, stderr) ->
if error? and error.message.match("command not found")
grunt.log.error "FAIL."
grunt.log.errorlns """
Either make is not installed or is not in your path.
On Ubuntu you can install make with:
sudo apt-get install build-essential
"""
return callback(error)
else if error?
return callback(error)
else
grunt.log.write "OK."
return callback()