From 5af72a0c8fcae289bda49feb39eed4c4a2894224 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Marques?= <joao.marques@tecnativa.com>
Date: Thu, 21 Oct 2021 12:38:41 +0100
Subject: [PATCH] Enable usage of git-autoshare

Needs https://github.com/Tecnativa/doodba/pull/453
Enables git-autoshare process for the local aggregation process
Sets up local cache even if user doesn't have git-autoshare installed and setup locally.

TT32042
---
 setup-devel.yaml.jinja | 3 +++
 tasks_downstream.py    | 8 ++++++++
 2 files changed, 11 insertions(+)

diff --git a/setup-devel.yaml.jinja b/setup-devel.yaml.jinja
index f5a16bd6..cce606e5 100644
--- a/setup-devel.yaml.jinja
+++ b/setup-devel.yaml.jinja
@@ -27,16 +27,19 @@ services:
         COMPILE: "false"
         UID: "${UID:-1000}"
         GID: "${GID:-1000}"
+        GIT_AUTOSHARE: "1"
     networks:
       - public
     volumes:
       - ./odoo/custom/src:/opt/odoo/custom/src:rw,z
+      - ~/.cache/git-autoshare/:/home/odoo/.cache/git-autoshare/:rw,z
     environment:
       DEPTH_DEFAULT: 100
       # XXX Export these variables before running setup to own the files
       UID: "${UID:-1000}"
       GID: "${GID:-1000}"
       UMASK: "$UMASK"
+      GIT_AUTOSHARE: "1"
     user: root
     entrypoint: autoaggregate
 
diff --git a/tasks_downstream.py b/tasks_downstream.py
index 173b10ce..4cdb3cdb 100644
--- a/tasks_downstream.py
+++ b/tasks_downstream.py
@@ -18,10 +18,12 @@
 from invoke import exceptions, task
 from invoke.util import yaml
 
+HOME = int(os.environ.get("HOME", 4))
 PROJECT_ROOT = Path(__file__).parent.absolute()
 SRC_PATH = PROJECT_ROOT / "odoo" / "custom" / "src"
 UID_ENV = {"GID": str(os.getgid()), "UID": str(os.getuid()), "UMASK": "27"}
 SERVICES_WAIT_TIME = int(os.environ.get("SERVICES_WAIT_TIME", 4))
+GIT_AUTOSHARE_CACHE_DIR = int(os.environ.get("GIT_AUTOSHARE_CACHE_DIR", 4))
 ODOO_VERSION = float(
     yaml.safe_load((PROJECT_ROOT / "common.yaml").read_text())["services"]["odoo"][
         "build"
@@ -403,6 +405,12 @@ def git_aggregate(c):
 
     Executes git-aggregator from within the doodba container.
     """
+    # Create git-autoshare cache folder if it doesn't exist
+    if GIT_AUTOSHARE_CACHE_DIR:
+        git_autoshare_cache_dir = Path(GIT_AUTOSHARE_CACHE_DIR)
+    else:
+        git_autoshare_cache_dir = Path(HOME) / ".cache" / "git-autoshare"
+    git_autoshare_cache_dir.mkdir(exist_ok=True)
     with c.cd(str(PROJECT_ROOT)):
         c.run(
             "docker-compose --file setup-devel.yaml run --rm odoo",