aboutsummaryrefslogtreecommitdiff
path: root/lib/python/qmk/submodules.py
diff options
context:
space:
mode:
authorZach White <skullydazed@gmail.com>2021-05-19 15:24:46 -0700
committerGitHub <noreply@github.com>2021-05-19 15:24:46 -0700
commitdb1eacdaacb9c8f6889f46bc1c6af155b81ad72a (patch)
treecd32a69a04c7ff93a11941d82aef3ce31c2b7523 /lib/python/qmk/submodules.py
parenta9aec546c873fa5a2cb1d9a10878aca71818b609 (diff)
downloadqmk_firmware-db1eacdaacb9c8f6889f46bc1c6af155b81ad72a.tar.gz
qmk_firmware-db1eacdaacb9c8f6889f46bc1c6af155b81ad72a.zip
Align our subprocess usage with current best practices. (#12940)
* Align our subprocess usage with current best practices. * remove unused import * Apply suggestions from code review Co-authored-by: Ryan <fauxpark@gmail.com> * fix the cpp invocation for older python * allow for unprompted installation * make sure qmk new-keyboard works on windows Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'lib/python/qmk/submodules.py')
-rw-r--r--lib/python/qmk/submodules.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/python/qmk/submodules.py b/lib/python/qmk/submodules.py
index be51a6804..6a272dae5 100644
--- a/lib/python/qmk/submodules.py
+++ b/lib/python/qmk/submodules.py
@@ -1,7 +1,6 @@
1"""Functions for working with QMK's submodules. 1"""Functions for working with QMK's submodules.
2""" 2"""
3 3from milc import cli
4import subprocess
5 4
6 5
7def status(): 6def status():
@@ -18,7 +17,7 @@ def status():
18 status is None when the submodule doesn't exist, False when it's out of date, and True when it's current 17 status is None when the submodule doesn't exist, False when it's out of date, and True when it's current
19 """ 18 """
20 submodules = {} 19 submodules = {}
21 git_cmd = subprocess.run(['git', 'submodule', 'status'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=30, universal_newlines=True) 20 git_cmd = cli.run(['git', 'submodule', 'status'], timeout=30)
22 21
23 for line in git_cmd.stdout.split('\n'): 22 for line in git_cmd.stdout.split('\n'):
24 if not line: 23 if not line:
@@ -53,19 +52,19 @@ def update(submodules=None):
53 # Update everything 52 # Update everything
54 git_sync_cmd.append('--recursive') 53 git_sync_cmd.append('--recursive')
55 git_update_cmd.append('--recursive') 54 git_update_cmd.append('--recursive')
56 subprocess.run(git_sync_cmd, check=True) 55 cli.run(git_sync_cmd, check=True)
57 subprocess.run(git_update_cmd, check=True) 56 cli.run(git_update_cmd, check=True)
58 57
59 else: 58 else:
60 if isinstance(submodules, str): 59 if isinstance(submodules, str):
61 # Update only a single submodule 60 # Update only a single submodule
62 git_sync_cmd.append(submodules) 61 git_sync_cmd.append(submodules)
63 git_update_cmd.append(submodules) 62 git_update_cmd.append(submodules)
64 subprocess.run(git_sync_cmd, check=True) 63 cli.run(git_sync_cmd, check=True)
65 subprocess.run(git_update_cmd, check=True) 64 cli.run(git_update_cmd, check=True)
66 65
67 else: 66 else:
68 # Update submodules in a list 67 # Update submodules in a list
69 for submodule in submodules: 68 for submodule in submodules:
70 subprocess.run(git_sync_cmd + [submodule], check=True) 69 cli.run([*git_sync_cmd, submodule], check=True)
71 subprocess.run(git_update_cmd + [submodule], check=True) 70 cli.run([*git_update_cmd, submodule], check=True)