hyfetch/hyfetch/neofetch_util.py
Azalea (on HyDEV-Daisy) 86ad1b5ad2 [+] Run command
2022-04-10 05:14:40 -04:00

51 lines
1.3 KiB
Python

import os
import re
from pathlib import Path
from subprocess import check_output
from tempfile import TemporaryDirectory
import pkg_resources
from .presets import ColorProfile
def get_command_path() -> str:
"""
Get the absolute path of the neofetch command
:return: Command path
"""
return pkg_resources.resource_filename(__name__, 'scripts/neofetch_mod.sh')
def get_distro_ascii() -> str:
"""
Get the distro ascii
:return: Distro ascii
"""
return check_output([get_command_path(), "print_ascii"]).decode().strip()
def run_neofetch(preset: ColorProfile):
# Get existing ascii
asc = get_distro_ascii()
# Remove existing colors
asc = re.sub('\\${.*?}', '', asc)
# Add new colors
lines = asc.split('\n')
colors = preset.with_length(len(lines))
asc = '\n'.join([colors[i].to_ansi_rgb() + l for i, l in enumerate(lines)])
# Write temp file
with TemporaryDirectory() as tmp_dir:
tmp_dir = Path(tmp_dir)
path = tmp_dir / 'ascii.txt'
path.write_text(asc)
# Call neofetch with the temp file
os.environ['ascii_len'] = str(max(len(l) for l in lines))
os.environ['ascii_lines'] = str(len(lines))
os.system(get_command_path() + f' --ascii --source {path.absolute()} --ascii-colors')