Add [ailbuilder] cleanup

This commit is contained in:
niclas 2024-03-07 15:06:15 +01:00
parent 38d71e97dd
commit 2b9c1bfda8

View file

@ -3,6 +3,7 @@ import requests
import subprocess import subprocess
import re import re
import os import os
import shutil
from time import sleep from time import sleep
from typing import List, Optional from typing import List, Optional
from pathlib import Path from pathlib import Path
@ -70,6 +71,14 @@ class Repo:
except Exception as e: except Exception as e:
print(f"Failed to run {cmd} for {self.id}: {e}") print(f"Failed to run {cmd} for {self.id}: {e}")
def cleanup(self, num_to_keep: int) -> None:
files = os.listdir(self.outputdir)
repo_images = [f for f in files if f.startswith(self.name)]
if len(repo_images) > num_to_keep:
repo_images.sort(key=lambda x: os.path.getmtime(os.path.join(self.outputdir, x)))
for image in repo_images[:-num_to_keep]:
shutil.rmtree(os.path.join(self.outputdir, image))
class GitHub(Repo): class GitHub(Repo):
"""Class for tracking GitHub repositories.""" """Class for tracking GitHub repositories."""
@ -126,8 +135,10 @@ def main():
while True: while True:
for repo in repos: for repo in repos:
repo.build() repo.build()
repo.cleanup(num_to_keep=3)
for package in aptpkg: for package in aptpkg:
package.build() package.build()
repo.cleanup(num_to_keep=3)
sleep(config["check_interval"]) sleep(config["check_interval"])
if __name__ == "__main__": if __name__ == "__main__":