commit_info.py: Rework into object oriented

This commit is contained in:
Mykola Grymalyuk
2023-02-09 17:04:20 -07:00
parent 925003e3f1
commit 4154b01d40
2 changed files with 22 additions and 11 deletions

View File

@@ -1,29 +1,40 @@
# Parse Commit Info from binary's info.plist
# App Structure:
# OpenCore-Patcher.app:
# Contents:
# MacOS:
# OpenCore-Patcher
# Info.plist
from pathlib import Path
import plistlib
class commit_info:
class ParseCommitInfo:
def __init__(self, binary_path: str):
"""
Parameters:
binary_path (str): Path to binary
"""
def __init__(self, binary_path):
self.binary_path = str(binary_path)
self.plist_path = self.convert_binary_path_to_plist_path()
self.plist_path = self._convert_binary_path_to_plist_path()
def convert_binary_path_to_plist_path(self):
def _convert_binary_path_to_plist_path(self):
"""
Resolve Info.plist path from binary path
"""
if Path(self.binary_path).exists():
plist_path = self.binary_path.replace("MacOS/OpenCore-Patcher", "Info.plist")
if Path(plist_path).exists() and plist_path.endswith(".plist"):
return plist_path
return None
def generate_commit_info(self):
"""
Generate commit info from Info.plist
Returns:
tuple: (Branch, Commit Date, Commit URL)
"""
if self.plist_path:
plist_info = plistlib.load(Path(self.plist_path).open("rb"))
if "Github" in plist_info:

View File

@@ -80,7 +80,7 @@ class OpenCoreLegacyPatcher:
self.constants.unpack_thread.start()
# Generate commit info
self.constants.commit_info = commit_info.commit_info(self.constants.launcher_binary).generate_commit_info()
self.constants.commit_info = commit_info.ParseCommitInfo(self.constants.launcher_binary).generate_commit_info()
if self.constants.commit_info[0] not in ["Running from source", "Built from source"]:
# Now that we have commit info, update nightly link
branch = self.constants.commit_info[0]