clear_obs_slides_dir.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. """
  2. Copyright © 2022 Noah Vogt <noah@noahvogt.com>
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 3 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. """
  14. import os
  15. import shutil
  16. import config as const
  17. from .log import log, error_msg
  18. from .path import expand_dir
  19. def clear_obs_slides_dir() -> None:
  20. log("clearing obs slides directory...")
  21. expanded_dir = expand_dir(const.OBS_SLIDES_DIR)
  22. try:
  23. for filename in os.listdir(expanded_dir):
  24. file_path = os.path.join(expanded_dir, filename)
  25. try:
  26. if os.path.isfile(file_path) or os.path.islink(file_path):
  27. os.unlink(file_path)
  28. elif os.path.isdir(file_path):
  29. shutil.rmtree(file_path)
  30. except (FileNotFoundError, PermissionError, IOError) as error:
  31. error_msg("Failed to delete %s. Reason: %s" % (file_path, error))
  32. except (FileNotFoundError, PermissionError, IOError) as error:
  33. error_msg("could not list directory '{}'. Reason: {}".format(
  34. expanded_dir, error
  35. ))