summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorEric Engestrom <eric@engestrom.ch>2020-03-10 11:10:08 +0100
committerMarge Bot <eric+marge@anholt.net>2020-04-21 01:13:53 +0000
commit26a26a358484bf03a6498c4116d8cb496f668cc1 (patch)
tree33a090c4e6d966ea90e87e67ee772469d521cc49 /bin
parenta4b36cd3dd307d75913dbc183cdf2d0c1e97ea0e (diff)
pick-ui: compute .pick_status.json path only once
Signed-off-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Dylan Baker <dylan@pnwbakers.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4649>
Diffstat (limited to 'bin')
-rw-r--r--bin/pick/core.py13
1 files changed, 6 insertions, 7 deletions
diff --git a/bin/pick/core.py b/bin/pick/core.py
index dab6028a4b0..dbfce46c36f 100644
--- a/bin/pick/core.py
+++ b/bin/pick/core.py
@@ -55,6 +55,8 @@ SEM = asyncio.Semaphore(50)
COMMIT_LOCK = asyncio.Lock()
+pick_status_json = pathlib.Path(__file__).parent.parent.parent / '.pick_status.json'
+
class PickUIException(Exception):
pass
@@ -80,10 +82,9 @@ class Resolution(enum.Enum):
async def commit_state(*, amend: bool = False, message: str = 'Update') -> bool:
"""Commit the .pick_status.json file."""
- f = pathlib.Path(__file__).parent.parent.parent / '.pick_status.json'
async with COMMIT_LOCK:
p = await asyncio.create_subprocess_exec(
- 'git', 'add', f.as_posix(),
+ 'git', 'add', pick_status_json.as_posix(),
stdout=asyncio.subprocess.DEVNULL,
stderr=asyncio.subprocess.DEVNULL,
)
@@ -360,18 +361,16 @@ async def gather_commits(version: str, previous: typing.List['Commit'],
def load() -> typing.List['Commit']:
- p = pathlib.Path(__file__).parent.parent.parent / '.pick_status.json'
- if not p.exists():
+ if not pick_status_json.exists():
return []
- with p.open('r') as f:
+ with pick_status_json.open('r') as f:
raw = json.load(f)
return [Commit.from_json(c) for c in raw]
def save(commits: typing.Iterable['Commit']) -> None:
- p = pathlib.Path(__file__).parent.parent.parent / '.pick_status.json'
commits = list(commits)
- with p.open('wt') as f:
+ with pick_status_json.open('wt') as f:
json.dump([c.to_json() for c in commits], f, indent=4)
asyncio.ensure_future(commit_state(message=f'Update to {commits[0].sha}'))