selfprivacy-rest-api/selfprivacy_api/jobs/nix_collect_garbage.py

33 lines
757 B
Python
Raw Normal View History

2022-11-24 02:08:58 +00:00
import re
import subprocess
from selfprivacy_api.jobs import Job, JobStatus, Jobs
from selfprivacy_api.utils.huey import huey
@huey.task()
def nix_collect_garbage(job: Job):
Jobs.update(
job=job,
status=JobStatus.RUNNING,
progress=0,
status_text="Start cleaning.",
)
2022-11-24 02:32:37 +00:00
output = subprocess.check_output(["nix-collect-garbage", "-d"])
2022-11-24 02:08:58 +00:00
pat = re.compile(r"linking saves ([+-]?\d+\.\d+ \w+).+?([+-]?\d+\.\d+ \w+) freed")
match = re.search(
pat,
output,
)
Jobs.update(
job=job,
status=JobStatus.FINISHED,
progress=100,
status_text="Сleaning completed.",
result=f"Currently hard linking saves {match.group(1)}, {match.group(2)} freed",
)