start.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const { exec,execSync } = require('child_process');
  2. let refreshDelay = 60;
  3. if(process.env.REFRESH_DELAY) refreshDelay = process.env.REFRESH_DELAY;
  4. if(!process.env.REPOSITORY_URL) throw "Env var GIT_REPOSITORY must be a valid repository url";
  5. let cloneUrl = process.env.REPOSITORY_URL;
  6. if(process.env.REPOSITORY_TOKEN){
  7. cloneUrl = cloneUrl.replace(/(.*:\/\/)(.*)/,'$1'+'myProject:'+process.env.REPOSITORY_TOKEN+'@$2');
  8. }
  9. console.log("starting program");
  10. console.log("refresh delay is ("+refreshDelay+"s)");
  11. console.log('Cloning doc repository: '+process.env.GIT_REPOSITORY);
  12. let stdout = execSync('cd /rdoc && git clone '+cloneUrl+" docs");
  13. console.log(stdout);
  14. setInterval(function() {
  15. exec('cd /rdoc/docs && git reset --hard origin/master && git pull', (error, stdout, stderr) => {
  16. if (error) {
  17. console.error(`error: ${error}`);
  18. return;
  19. }
  20. if(stdout.indexOf('Already up to date')!==-1) return;
  21. console.log(`${stdout}`);
  22. console.error(`${stderr}`);
  23. });
  24. }, refreshDelay * 1000);
  25. console.log("load docsify");
  26. exec('docsify serve /rdoc/docs', (error, stdout, stderr) => {
  27. if (error) {
  28. console.error(`error: ${error}`);
  29. return;
  30. }
  31. console.log(` ${stdout}`);
  32. console.error(`${stderr}`);
  33. });