43 lines
1020 B
Python
43 lines
1020 B
Python
import re
|
|
import subprocess
|
|
|
|
from utils import (
|
|
colors,
|
|
status_indicators,
|
|
)
|
|
|
|
BASH_PATH: str = fr"{colors.CYAN}{colors.BOLD}\w"
|
|
POINTER: str = f"{colors.YELLOW}-> {colors.RESET}"
|
|
|
|
|
|
def prompt() -> None:
|
|
git_status: subprocess.CompletedProcess[str] = subprocess.run(
|
|
['git', 'status'],
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.PIPE,
|
|
text=True,
|
|
)
|
|
|
|
if not git_status.stderr.strip():
|
|
git_branch: str = re.findall( r'([a-zA-Z0-9-\/()]+)', git_status.stdout.strip())[2]
|
|
|
|
for key in status_indicators.keys():
|
|
if key in git_status.stdout.strip():
|
|
color: str = status_indicators[key]['color']
|
|
icon: str = status_indicators[key]['icon']
|
|
|
|
git_branch_color: str = f"{color}({git_branch}{icon})"
|
|
print(f"{BASH_PATH} {git_branch_color} {POINTER}")
|
|
exit(0)
|
|
|
|
print(f"{BASH_PATH} {POINTER}")
|
|
exit(0)
|
|
|
|
|
|
def main():
|
|
prompt()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|