From 8cd73c23e146a351f5b4601eb7c58b0e40b0ea13 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dylan=20A=C3=AFssi?= <dylan.aissi@collabora.com>
Date: Thu, 20 Feb 2025 11:51:40 +0100
Subject: [PATCH] Keep compatibility with python3.sh 1.x, by using _return_cmd
 only when required.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

python3.sh 1.x is not compatible with _return_cmd, so we should only
use it with an higher version of python3.sh.

Signed-off-by: Dylan Aïssi <dylan.aissi@collabora.com>
---
 tools/apertis-pkg-merge-updates                 |  6 ++++--
 tools/apertis-pkg-merge-upstream-to-downstreams | 12 ++++++++----
 tools/apertis-pkg-pull-updates                  |  7 +++++--
 3 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/tools/apertis-pkg-merge-updates b/tools/apertis-pkg-merge-updates
index 0158757..78070a6 100755
--- a/tools/apertis-pkg-merge-updates
+++ b/tools/apertis-pkg-merge-updates
@@ -15,10 +15,12 @@ from pathlib import Path
 
 from debian.changelog import Changelog, VersionError, format_date
 from debian.debian_support import Version
+from sh import __version__ as sh_version
 from sh.contrib import git
 
 APERTIS_CI_NAME = "Apertis CI"
 APERTIS_CI_EMAIL = "devel@lists.apertis.org"
+RETURN_CMD = {} if sh_version.startswith("1.") else {"_return_cmd": True}
 
 
 def git_dir() -> str:
@@ -176,7 +178,7 @@ def main():
                 "merge",
                 "--ff-only",
                 rebase_tip,
-                _return_cmd=True,
+                **RETURN_CMD,
                 _ok_code=[0, 128],
                 _out="/dev/stdout",
                 _err="/dev/stderr",
@@ -216,7 +218,7 @@ def main():
         args.upstream,
         ":!debian/changelog",
         ":!debian/apertis/*",
-        _return_cmd=True,
+        **RETURN_CMD,
         _ok_code=[0, 1],
     )
     msg = [f"Sync from {args.upstream}."]
diff --git a/tools/apertis-pkg-merge-upstream-to-downstreams b/tools/apertis-pkg-merge-upstream-to-downstreams
index fd363c4..8927cdb 100755
--- a/tools/apertis-pkg-merge-upstream-to-downstreams
+++ b/tools/apertis-pkg-merge-upstream-to-downstreams
@@ -16,9 +16,13 @@ import urllib.parse
 import urllib.request
 from functools import partial
 
-from sh import ErrorReturnCode, ErrorReturnCode_2, apertis_pkg_merge_updates, echo
+from sh import ErrorReturnCode, ErrorReturnCode_2
+from sh import __version__ as sh_version
+from sh import apertis_pkg_merge_updates, echo
 from sh.contrib import git
 
+RETURN_CMD = {} if sh_version.startswith("1.") else {"_return_cmd": True}
+
 
 @dataclasses.dataclass
 class Conflict:
@@ -91,7 +95,7 @@ def is_minor_change(upstream, downstream):
         downstream,
         ":!debian/changelog",
         ":!debian/apertis/*",
-        _return_cmd=True,
+        **RETURN_CMD,
         _ok_code=[0, 1],
     )
     return o.exit_code == 0
@@ -357,7 +361,7 @@ def main():
                     "--is-ancestor",
                     upstream_branch,
                     downstream_branch,
-                    _return_cmd=True,
+                    **RETURN_CMD,
                     _ok_code=[0, 1],
                 ).exit_code
                 == 0
@@ -440,7 +444,7 @@ def main():
                     "diff",
                     "--quiet",
                     f"HEAD..{downstream_branch}",
-                    _return_cmd=True,
+                    **RETURN_CMD,
                     _ok_code=[0, 1],
                 )
                 if o.exit_code == 0:
diff --git a/tools/apertis-pkg-pull-updates b/tools/apertis-pkg-pull-updates
index 9be3571..7f71c77 100755
--- a/tools/apertis-pkg-pull-updates
+++ b/tools/apertis-pkg-pull-updates
@@ -23,8 +23,11 @@ from itertools import chain
 import yaml
 from debian.changelog import Changelog
 from debian.debian_support import Version
+from sh import __version__ as sh_version
 from sh.contrib import git
 
+RETURN_CMD = {} if sh_version.startswith("1.") else {"_return_cmd": True}
+
 
 def debian_branch(suite):
     return "debian/" + suite
@@ -60,7 +63,7 @@ def is_ancestor(this: str, other: str):
             "--is-ancestor",
             this,
             other,
-            _return_cmd=True,
+            **RETURN_CMD,
             _ok_code=[0, 1],
         ).exit_code
         == 0
@@ -441,7 +444,7 @@ def main():
                     "merge",
                     "--ff-only",
                     local_version_branch,
-                    _return_cmd=True,
+                    **RETURN_CMD,
                     _out="/dev/stdout",
                     _err="/dev/stderr",
                 )
-- 
GitLab