2016-04-07 15:03:22 +02:00
|
|
|
#!/usr/bin/env python
|
2016-05-03 23:44:31 +02:00
|
|
|
from __future__ import absolute_import
|
|
|
|
from __future__ import print_function
|
|
|
|
import glob
|
|
|
|
import os
|
|
|
|
import subprocess
|
|
|
|
import sys
|
|
|
|
|
2016-06-28 05:28:53 +02:00
|
|
|
ZULIP_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
2016-05-03 23:44:31 +02:00
|
|
|
VENV_CACHE_DIR = "/srv/zulip-venv-cache"
|
|
|
|
if "--travis" in sys.argv:
|
|
|
|
VENV_CACHE_DIR = os.path.join(os.environ["HOME"], "zulip-venv-cache")
|
|
|
|
|
|
|
|
used_caches = set()
|
2016-06-28 05:28:53 +02:00
|
|
|
hash_reqs = os.path.join(ZULIP_PATH, 'scripts', 'lib', 'hash_reqs.py')
|
|
|
|
|
|
|
|
for filename in os.listdir(os.path.join(ZULIP_PATH, "requirements")):
|
|
|
|
requirements_file = os.path.join(ZULIP_PATH, "requirements", filename)
|
|
|
|
hash_val = subprocess.check_output([hash_reqs, requirements_file]).strip()
|
2016-06-28 05:39:22 +02:00
|
|
|
used_caches.add(os.path.join(VENV_CACHE_DIR, hash_val.decode('utf-8')))
|
2016-05-03 23:44:31 +02:00
|
|
|
|
|
|
|
for cache_dir_base in os.listdir(VENV_CACHE_DIR):
|
|
|
|
cache_dir = os.path.join(VENV_CACHE_DIR, cache_dir_base)
|
|
|
|
if cache_dir not in used_caches:
|
|
|
|
print("Cleaning unused venv %s" % (cache_dir,))
|
|
|
|
subprocess.check_call(["sudo", "rm", "-rf", cache_dir])
|
|
|
|
else:
|
|
|
|
print("Keeping used venv %s" % (cache_dir,))
|