genScript.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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(`git -C ${service.name} rev-parse HEAD`)
  14. }
  15. break
  16. case 'cleanup-git':
  17. for (const service of services) {
  18. console.log(`rm -rf ${service.name}/.git`)
  19. }
  20. break
  21. case 'install':
  22. for (const service of services) {
  23. console.log('pushd', service.name)
  24. switch (service.name) {
  25. case 'web':
  26. console.log('npm ci')
  27. break
  28. default:
  29. console.log('npm ci --only=production')
  30. }
  31. console.log('popd')
  32. }
  33. break
  34. case 'compile':
  35. for (const service of services) {
  36. console.log('pushd', service.name)
  37. switch (service.name) {
  38. case 'web':
  39. console.log('npm run webpack:production')
  40. // drop webpack/babel cache
  41. console.log('rm -rf node_modules/.cache')
  42. break
  43. default:
  44. console.log(`echo ${service.name} does not require a compilation`)
  45. }
  46. console.log('popd')
  47. }
  48. break
  49. default:
  50. console.error('unknown command')
  51. console.log('exit 101')
  52. process.exit(101)
  53. }
  54. console.log('set +x')
  55. console.log(
  56. 'rm -rf /root/.cache /root/.npm $(find /tmp/ -mindepth 1 -maxdepth 1)'
  57. )