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",
|
|
|
|
|
)
|