genScript.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. const services = require('./services')
  2. console.log('#!/bin/bash')
  3. console.log('set -ex')
  4. switch (process.argv.pop()) {
  5. case 'checkout':
  6. for (const service of services) {
  7. console.log(`git clone ${service.repo} ${service.name}`)
  8. console.log(`git -C ${service.name} checkout ${service.version}`)
  9. }
  10. break
  11. case 'revisions':
  12. for (const service of services) {
  13. console.log(`echo -n /var/www/sharelatex/${service.name},`)
  14. console.log(`git -C ${service.name} rev-parse HEAD`)
  15. }
  16. break
  17. case 'cleanup-git':
  18. for (const service of services) {
  19. console.log(`rm -rf ${service.name}/.git`)
  20. }
  21. break
  22. case 'install':
  23. for (const service of services) {
  24. console.log('pushd', service.name)
  25. switch (service.name) {
  26. case 'web':
  27. console.log('npm ci')
  28. break
  29. default:
  30. // TODO(das7pad): revert back to npm ci --only=production (https://github.com/overleaf/issues/issues/4544)
  31. console.log('npm ci')
  32. }
  33. console.log('popd')
  34. }
  35. break
  36. case 'compile':
  37. for (const service of services) {
  38. console.log('pushd', service.name)
  39. switch (service.name) {
  40. case 'web':
  41. console.log('npm run webpack:production')
  42. // drop webpack/babel cache
  43. console.log('rm -rf node_modules/.cache')
  44. break
  45. default:
  46. console.log(`echo ${service.name} does not require a compilation`)
  47. }
  48. console.log('popd')
  49. }
  50. break
  51. default:
  52. console.error('unknown command')
  53. console.log('exit 101')
  54. process.exit(101)
  55. }
  56. console.log('set +x')
  57. console.log(
  58. 'rm -rf /root/.cache /root/.npm $(find /tmp/ -mindepth 1 -maxdepth 1)'
  59. )