mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-14 20:40:17 -05:00
Import web and doc updater as git repos, not npm modules
This commit is contained in:
parent
b1ae5cb7aa
commit
543c9f2878
4 changed files with 110 additions and 33 deletions
3
server-ce/.gitignore
vendored
3
server-ce/.gitignore
vendored
|
@ -1 +1,4 @@
|
||||||
node_modules
|
node_modules
|
||||||
|
|
||||||
|
web
|
||||||
|
document-updater
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
fs = require "fs"
|
||||||
|
exec = require("child_process").exec
|
||||||
|
spawn = require("child_process").spawn
|
||||||
|
|
||||||
|
WEB_REPO = "git@bitbucket.org:sharelatex/web-sharelatex.git"
|
||||||
|
DOC_UPDATER_REPO = "git@bitbucket.org:sharelatex/documentupdater-sharelatex.git"
|
||||||
|
|
||||||
|
|
||||||
module.exports = (grunt) ->
|
module.exports = (grunt) ->
|
||||||
grunt.loadNpmTasks 'grunt-bunyan'
|
grunt.loadNpmTasks 'grunt-bunyan'
|
||||||
grunt.loadNpmTasks 'grunt-execute'
|
grunt.loadNpmTasks 'grunt-execute'
|
||||||
|
@ -7,9 +15,9 @@ module.exports = (grunt) ->
|
||||||
grunt.initConfig
|
grunt.initConfig
|
||||||
execute:
|
execute:
|
||||||
web:
|
web:
|
||||||
src: "node_modules/web-sharelatex/app.js"
|
src: "web/app.js"
|
||||||
'document-updater':
|
'document-updater':
|
||||||
src: "node_modules/document-updater-sharelatex/app.js"
|
src: "document-updater/app.js"
|
||||||
|
|
||||||
concurrent:
|
concurrent:
|
||||||
all:
|
all:
|
||||||
|
@ -20,25 +28,39 @@ module.exports = (grunt) ->
|
||||||
availabletasks:
|
availabletasks:
|
||||||
tasks:
|
tasks:
|
||||||
options:
|
options:
|
||||||
filter: 'exclude',
|
filter: 'exclude',
|
||||||
tasks: [
|
tasks: [
|
||||||
'concurrent'
|
'concurrent'
|
||||||
'execute'
|
'execute'
|
||||||
'bunyan'
|
'bunyan'
|
||||||
'availabletasks'
|
'availabletasks'
|
||||||
]
|
]
|
||||||
groups:
|
groups:
|
||||||
"Run tasks": [
|
"Run tasks": [
|
||||||
"run"
|
"run"
|
||||||
"run:all"
|
"run:all"
|
||||||
"run:web"
|
"run:web"
|
||||||
"run:document-updater"
|
"run:document-updater"
|
||||||
"default"
|
"default"
|
||||||
]
|
]
|
||||||
"Misc": [
|
"Misc": [
|
||||||
"help"
|
"help"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
grunt.registerTask 'install:web', "Download and set up the web-sharelatex service", () ->
|
||||||
|
done = @async()
|
||||||
|
Helpers.installService(WEB_REPO, "web", done)
|
||||||
|
grunt.registerTask 'install:document-updater', "Download and set up the document-updater-sharelatex service", () ->
|
||||||
|
done = @async()
|
||||||
|
Helpers.installService(DOC_UPDATER_REPO, "document-updater", done)
|
||||||
|
|
||||||
|
grunt.registerTask 'update:web', "Checkout and update the web-sharelatex service", () ->
|
||||||
|
done = @async()
|
||||||
|
Helpers.updateService("web", done)
|
||||||
|
grunt.registerTask 'update:document-updater', "Checkout and update the document-updater-sharelatex service", () ->
|
||||||
|
done = @async()
|
||||||
|
Helpers.updateService("document-updater", done)
|
||||||
|
|
||||||
grunt.registerTask 'help', 'Display this help list', 'availabletasks'
|
grunt.registerTask 'help', 'Display this help list', 'availabletasks'
|
||||||
|
|
||||||
grunt.registerTask 'run:web', "Run web-sharelatex, the ShareLaTeX web server", ["bunyan", "execute:web"]
|
grunt.registerTask 'run:web', "Run web-sharelatex, the ShareLaTeX web server", ["bunyan", "execute:web"]
|
||||||
|
@ -49,3 +71,47 @@ module.exports = (grunt) ->
|
||||||
|
|
||||||
grunt.registerTask 'default', 'run'
|
grunt.registerTask 'default', 'run'
|
||||||
|
|
||||||
|
Helpers =
|
||||||
|
installService: (repo_src, dir, callback = (error) ->) ->
|
||||||
|
Helpers.cloneGitRepo repo_src, dir, (error) ->
|
||||||
|
return callback(error) if error?
|
||||||
|
Helpers.installNpmModules dir, (error) ->
|
||||||
|
return callback(error) if error?
|
||||||
|
Helpers.runGruntInstall dir, (error) ->
|
||||||
|
return callback(error) if error?
|
||||||
|
callback()
|
||||||
|
|
||||||
|
updateService: (dir, callback = (error) ->) ->
|
||||||
|
Helpers.updateGitRepo dir, (error) ->
|
||||||
|
return callback(error) if error?
|
||||||
|
Helpers.installNpmModules dir, (error) ->
|
||||||
|
return callback(error) if error?
|
||||||
|
Helpers.runGruntInstall dir, (error) ->
|
||||||
|
return callback(error) if error?
|
||||||
|
callback()
|
||||||
|
|
||||||
|
cloneGitRepo: (repo_src, dir, callback = (error) ->) ->
|
||||||
|
if !fs.existsSync(dir)
|
||||||
|
proc = spawn "git", ["clone", repo_src, dir], stdio: "inherit"
|
||||||
|
proc.on "close", () ->
|
||||||
|
callback()
|
||||||
|
else
|
||||||
|
console.log "#{dir} already installed, skipping."
|
||||||
|
callback()
|
||||||
|
|
||||||
|
updateGitRepo: (dir, callback = (error) ->) ->
|
||||||
|
proc = spawn "git", ["checkout", "master"], cwd: dir, stdio: "inherit"
|
||||||
|
proc.on "close", () ->
|
||||||
|
proc = spawn "git", ["pull"], cwd: dir, stdio: "inherit"
|
||||||
|
proc.on "close", () ->
|
||||||
|
callback()
|
||||||
|
|
||||||
|
installNpmModules: (dir, callback = (error) ->) ->
|
||||||
|
proc = spawn "npm", ["install"], stdio: "inherit", cwd: dir
|
||||||
|
proc.on "close", () ->
|
||||||
|
callback()
|
||||||
|
|
||||||
|
runGruntInstall: (dir, callback = (error) ->) ->
|
||||||
|
proc = spawn "grunt", ["install"], stdio: "inherit", cwd: dir
|
||||||
|
proc.on "close", () ->
|
||||||
|
callback()
|
||||||
|
|
|
@ -20,7 +20,7 @@ module.exports =
|
||||||
# ------------
|
# ------------
|
||||||
#
|
#
|
||||||
# ShareLaTeX stores binary files like images in S3.
|
# ShareLaTeX stores binary files like images in S3.
|
||||||
# Fill in your Amazon S3 credential below.
|
# Fill in your Amazon S3 credentials below.
|
||||||
s3:
|
s3:
|
||||||
key: ""
|
key: ""
|
||||||
secret: ""
|
secret: ""
|
||||||
|
@ -29,7 +29,7 @@ module.exports =
|
||||||
# Databases
|
# Databases
|
||||||
# ---------
|
# ---------
|
||||||
mongo:
|
mongo:
|
||||||
url : 'mongodb://127.0.0.1/sharelatexTesting'
|
url : 'mongodb://127.0.0.1/sharelatex'
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
web:
|
web:
|
||||||
|
@ -175,20 +175,30 @@ module.exports =
|
||||||
# cookie with a secure flag (recommended).
|
# cookie with a secure flag (recommended).
|
||||||
secureCookie: false
|
secureCookie: false
|
||||||
|
|
||||||
|
|
||||||
# Internal configs
|
# Internal configs
|
||||||
# ----------------
|
# ----------------
|
||||||
path:
|
path:
|
||||||
commonFolder: Path.resolve "common"
|
# If we ever need to write something to disk (e.g. incoming requests
|
||||||
|
# that need processing but may be too big for memory, then write
|
||||||
|
# them to disk here).
|
||||||
dumpFolder: Path.resolve "data/dumpFolder"
|
dumpFolder: Path.resolve "data/dumpFolder"
|
||||||
zippedProjects: Path.resolve "data/zippedProjects"
|
|
||||||
unzippedProjects: Path.resolve "data/unzippedProjects"
|
|
||||||
|
|
||||||
|
# Automatic Snapshots
|
||||||
|
# -------------------
|
||||||
automaticSnapshots:
|
automaticSnapshots:
|
||||||
maxTimeBetweenSnapshots: 30 * minutes
|
# How long should we wait after the user last edited to
|
||||||
|
# take a snapshot?
|
||||||
waitTimeAfterLastEdit: 5 * minutes
|
waitTimeAfterLastEdit: 5 * minutes
|
||||||
|
# Even if edits are still taking place, this is maximum
|
||||||
|
# time to wait before taking another snapshot.
|
||||||
|
maxTimeBetweenSnapshots: 30 * minutes
|
||||||
|
|
||||||
smokeTest:
|
# Smoke test
|
||||||
user: "team+smoketest@sharelatex.com"
|
# ----------
|
||||||
password: "smoketest"
|
# Provide log in credentials and a project to be able to run
|
||||||
projectId: "52b18a70249683c0a9000007"
|
# some basic smoke tests to check the core functionality.
|
||||||
|
#
|
||||||
|
# smokeTest:
|
||||||
|
# user: ""
|
||||||
|
# password: ""
|
||||||
|
# projectId: ""
|
|
@ -4,8 +4,6 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"logger-sharelatex": "git+ssh://git@bitbucket.org:sharelatex/logger-sharelatex.git#bunyan",
|
"logger-sharelatex": "git+ssh://git@bitbucket.org:sharelatex/logger-sharelatex.git#bunyan",
|
||||||
"settings-sharelatex": "git+ssh://git@bitbucket.org:sharelatex/settings-sharelatex.git#master",
|
"settings-sharelatex": "git+ssh://git@bitbucket.org:sharelatex/settings-sharelatex.git#master",
|
||||||
"web-sharelatex": "git+ssh://git@bitbucket.org:sharelatex/web-sharelatex.git#master",
|
|
||||||
"document-updater-sharelatex": "git+ssh://git@bitbucket.org:sharelatex/documentupdater-sharelatex.git#master",
|
|
||||||
"coffee-script": "~1.7.1"
|
"coffee-script": "~1.7.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
Loading…
Reference in a new issue