From 0cf2c9f8ec52b1ae276c1573210d252ab0c4577b Mon Sep 17 00:00:00 2001
From: V3n3RiX <venerix@koprulu.sector>
Date: Fri, 16 Sep 2022 09:50:21 +0100
Subject: replace subprocess.Popen.wait with subprocess.Popen.communicate
 everywhere we use pipes to avoid deadlocks

---
 src/backend/setprofile.py |  8 ++++----
 src/backend/sync.py       | 40 ++++++++++++++++++++--------------------
 2 files changed, 24 insertions(+), 24 deletions(-)

(limited to 'src')

diff --git a/src/backend/setprofile.py b/src/backend/setprofile.py
index a5d6480..87d5437 100644
--- a/src/backend/setprofile.py
+++ b/src/backend/setprofile.py
@@ -7,12 +7,12 @@ import subprocess
 @animation.wait('setting up profile')
 def start():
     if platform.uname()[4] == 'x86_64':
-        eselectExec = subprocess.Popen(['eselect', 'profile', 'set', 'default/linux/amd64/17.1/hardened'])
-        eselectExec.wait()
+        eselectExec = subprocess.Popen(['eselect', 'profile', 'set', 'default/linux/amd64/17.1/hardened'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        stdout, stderr = eselectExec.communicate()
 
     if platform.uname()[4] == 'aarch64':
-        eselectExec = subprocess.Popen(['eselect', 'profile', 'set', 'default/linux/arm64/17.0'])
-        eselectExec.wait()
+        eselectExec = subprocess.Popen(['eselect', 'profile', 'set', 'default/linux/arm64/17.0'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        stdout, stderr = eselectExec.communicate()
 
     envExec = subprocess.Popen(['env-update'], stdout=subprocess.DEVNULL)
     envExec.wait()
diff --git a/src/backend/sync.py b/src/backend/sync.py
index 2490c04..0f28823 100644
--- a/src/backend/sync.py
+++ b/src/backend/sync.py
@@ -9,37 +9,37 @@ def portage():
     localBranch = subprocess.check_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD'])
     remoteBranch = subprocess.check_output(['git', 'rev-parse', '--symbolic-full-name', '@{u}'])
 
-    gitExecStage1 = subprocess.Popen(['git', 'fetch', '--depth=1', 'origin'] + localBranch.decode().strip().split() + ['--quiet'], stdout=subprocess.PIPE)
-    gitExecStage1.wait()
+    gitExecStage1 = subprocess.Popen(['git', 'fetch', '--depth=1', 'origin'] + localBranch.decode().strip().split() + ['--quiet'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    stdout, stderr = gitExecStage1.communicate()
 
-    gitExecStage2 = subprocess.Popen(['git', 'reset', '--hard'] + remoteBranch.decode().strip().replace('refs/remotes/','').split() + ['--quiet'], stdout=subprocess.PIPE)
-    gitExecStage2.wait()
+    gitExecStage2 = subprocess.Popen(['git', 'reset', '--hard'] + remoteBranch.decode().strip().replace('refs/remotes/','').split() + ['--quiet'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    stdout, stderr = gitExecStage2.communicate()
 
 def overlay():
     os.chdir(sisyphus.filesystem.redcoreRepoDir)
     localBranch = subprocess.check_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD'])
     remoteBranch = subprocess.check_output(['git', 'rev-parse', '--symbolic-full-name', '@{u}'])
 
-    gitExecStage1 = subprocess.Popen(['git', 'fetch', '--depth=1', 'origin'] + localBranch.decode().strip().split() + ['--quiet'], stdout=subprocess.PIPE)
-    gitExecStage1.wait()
+    gitExecStage1 = subprocess.Popen(['git', 'fetch', '--depth=1', 'origin'] + localBranch.decode().strip().split() + ['--quiet'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    stdout, stderr = gitExecStage1.communicate()
 
-    gitExecStage1 = subprocess.Popen(['git', 'reset', '--hard'] + remoteBranch.decode().strip().replace('refs/remotes/','').split() + ['--quiet'], stdout=subprocess.PIPE)
-    gitExecStage1.wait()
+    gitExecStage2 = subprocess.Popen(['git', 'reset', '--hard'] + remoteBranch.decode().strip().replace('refs/remotes/','').split() + ['--quiet'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    stdout, stderr = gitExecStage2.communicate()
 
 def portageCfg():
     os.chdir(sisyphus.filesystem.portageConfigDir)
     localBranch = subprocess.check_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD'])
     remoteBranch = subprocess.check_output(['git', 'rev-parse', '--symbolic-full-name', '@{u}'])
 
-    gitExecStage1 = subprocess.Popen(['git', 'stash'], stdout=subprocess.PIPE)
-    gitExecStage1.wait()
-    gitExecStage2 = subprocess.Popen(['git', 'fetch', '--depth=1', 'origin'] + localBranch.decode().strip().split() + ['--quiet'], stdout=subprocess.PIPE)
-    gitExecStage2.wait()
-    gitExecStage3 = subprocess.Popen(['git', 'reset', '--hard'] + remoteBranch.decode().strip().replace('refs/remotes/','').split() + ['--quiet'], stdout=subprocess.PIPE)
-    gitExecStage3.wait()
-    gitExecStage4 = subprocess.Popen(['git', 'stash', 'apply'], stdout=subprocess.PIPE)
-    gitExecStage4.wait()
-    gitExecStage5 = subprocess.Popen(['git', 'stash', 'clear'], stdout=subprocess.PIPE)
-    gitExecStage5.wait()
-    gitExecStage6 = subprocess.Popen(['git', 'gc', '--prune=now', '--quiet'], stdout=subprocess.PIPE)
-    gitExecStage6.wait()
+    gitExecStage1 = subprocess.Popen(['git', 'stash'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    stdout, stderr = gitExecStage1.communicate()
+    gitExecStage2 = subprocess.Popen(['git', 'fetch', '--depth=1', 'origin'] + localBranch.decode().strip().split() + ['--quiet'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    stdout, stderr = gitExecStage2.communicate()
+    gitExecStage3 = subprocess.Popen(['git', 'reset', '--hard'] + remoteBranch.decode().strip().replace('refs/remotes/','').split() + ['--quiet'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    stdout, stderr = gitExecStage3.communicate()
+    gitExecStage4 = subprocess.Popen(['git', 'stash', 'apply'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    stdout, stderr = gitExecStage4.communicate()
+    gitExecStage5 = subprocess.Popen(['git', 'stash', 'clear'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    stdout, stderr = gitExecStage5.communicate()
+    gitExecStage6 = subprocess.Popen(['git', 'gc', '--prune=now', '--quiet'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    stdout, stderr = gitExecStage6.communicate()
-- 
cgit v1.2.3