genScript.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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 'install-dev':
  37. for (const service of services) {
  38. console.log('pushd', service.name)
  39. switch (service.name) {
  40. case 'web':
  41. console.log('npm install')
  42. break
  43. default:
  44. console.log('npm install')
  45. }
  46. console.log('popd')
  47. }
  48. break
  49. case 'compile':
  50. for (const service of services) {
  51. console.log('pushd', service.name)
  52. switch (service.name) {
  53. case 'web':
  54. console.log('npm run webpack:production')
  55. // drop webpack/babel cache
  56. console.log('rm -rf node_modules/.cache')
  57. break
  58. default:
  59. console.log(`echo ${service.name} does not require a compilation`)
  60. }
  61. console.log('popd')
  62. }
  63. break
  64. default:
  65. console.error('unknown command')
  66. console.log('exit 101')
  67. process.exit(101)
  68. }
  69. console.log('set +x')
  70. console.log(
  71. 'rm -rf /root/.cache /root/.npm $(find /tmp/ -mindepth 1 -maxdepth 1)'
  72. )