''' Clean the direction in CML Server (tmp2 or home directory) Suppose that the CLEAN_PATH may seems like this. And we will only check the directories & files under the user directory with "depth=1" CLEAN_PATH | +---- user1 (user directory) | | | +--- file1 (depth=1, will be check) | | | +--- Project1 (depth=1, will be check) | | | | | +--- subset1-1 (depth=2, won't be check) | | | +--- Project2 (depth=1) | | | +--- subset2-1 (depth=2) | | | +--- subset2-2 (depth=2) | +---- user2 (user directory) | +--- Project1 (depth=1) | +--- subset1-1 (depth=2) ''' from src.mailer import Mailer from src.cleaner import Cleaner import os from constant import KEEP_FILES, WHITE_LIST, DATE, GOOGLE_OWNER, MAIL_MESSAGE GOOGLE_CODE = os.environ['GOOGLE_CODE'] def get_master(): ans = [] for year in os.listdir(f'/home/master/'): if os.path.isdir(f'/home/master/{year}'): for user in os.listdir(f'/home/master/{year}'): ans.append(f'/home/master/{year}/{user}') return ans def get_phd(): ans = [] for dir_name in os.listdir(f'/home/phd/'): if dir_name.isnumeric(): year = dir_name for user in os.listdir(f'/home/phd/{year}'): ans.append(f'/home/phd/{year}/{user}') else: ans.append(f'/home/phd/{dir_name}') return ans def get_ra(): ans = [] for user in os.listdir(f'/home/ra/'): ans.append(f'/home/ra/{user}') return ans def get_extra(): ans = [] for user in os.listdir(f'/home/extra/'): ans.append(f'/home/extra/{user}') return ans def main(clean_type, test=True, notify_stage=True): mailer = Mailer(GOOGLE_OWNER, GOOGLE_CODE) if clean_type == 'home': student_list = [] # find all student's path for student_type in ['master', 'phd', 'ra', 'extra']: func = globals()[f'get_{student_type}'] student_list += func() # start clean for index, student_dir in enumerate(student_list): print(f'{index+1}/{len(student_list)} {student_dir}') cleaner = Cleaner(student_dir, "2024-02-01", mailer, WHITE_LIST, KEEP_FILES, MAIL_MESSAGE) cleaner.run(test=test, notify_stage=notify_stage) if __name__ == "__main__": main('home', test=True, notify_stage=False)