job.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. """Scheduler class"""
  2. import os
  3. import subprocess
  4. import shutil
  5. from datetime import datetime
  6. from app import scheduler
  7. def add():
  8. """Schedule job"""
  9. job = scheduler.get_job("set")
  10. if job is None:
  11. job = scheduler.add_job(
  12. id="set",
  13. func=run,
  14. trigger="date",
  15. )
  16. def run():
  17. """Run the job"""
  18. print("Running")
  19. working_dir = os.getcwd()
  20. if os.path.basename(working_dir) != 'rr_tutorial':
  21. os.chdir('rr_tutorial')
  22. subprocess.check_output(['git', 'pull'])
  23. book_toc_size = os.path.getsize('master_book.toc') \
  24. if os.path.isfile('master_book.toc') else 0
  25. article_toc_size = os.path.getsize('master_article.toc') \
  26. if os.path.isfile('master_article.toc') else 0
  27. dist_toc_size = os.path.getsize('master_dist.toc') \
  28. if os.path.isfile('master_dist.toc') else 0
  29. subprocess.check_output(['xelatex', '-halt-on-error', 'master_book.tex'])
  30. subprocess.check_output(['xelatex', '-halt-on-error', 'master_article.tex'])
  31. subprocess.check_output(['./set.sh'])
  32. if book_toc_size != os.path.getsize('master_book.toc'):
  33. subprocess.check_output(['xelatex', '-halt-on-error', 'master_book.tex'])
  34. if article_toc_size != os.path.getsize('master_article.toc'):
  35. subprocess.check_output(['xelatex', '-halt-on-error', 'master_article.tex'])
  36. if dist_toc_size != os.path.getsize('master_dist.toc'):
  37. subprocess.check_output(['./set.sh'])
  38. shutil.copyfile('master_book.pdf', '../app/static/tutorial/book.pdf')
  39. shutil.copyfile('master_article.pdf', '../app/static/tutorial/article.pdf')
  40. shutil.copyfile('master_dist.pdf', '../app/static/tutorial/dist.pdf')
  41. subprocess.check_output(['./convert.sh'])
  42. shutil.copyfile('master_dist.png', '../app/static/tutorial/dist.png')
  43. shutil.copyfile('master_article.png', '../app/static/tutorial/article.png')
  44. if __name__ == "__main__":
  45. run.__module__ = "scheduler"