archey4/archey/entries/hostname.py
Tobilike 121b1cc796
[CORE] Adds (Nerd Fonts) icons for entries (#144)
Co-authored-by: Michael Bromilow <12384431+ingrinder@users.noreply.github.com>
Co-authored-by: Samuel FORESTIER <samuel+dev@forestier.app>
2024-01-14 17:54:08 +00:00

28 lines
732 B
Python

"""Host-name detection class"""
import platform
from typing import Optional
from archey.entry import Entry
class Hostname(Entry):
"""Read system file with fallback on `platform` module to retrieve the system host-name"""
_ICON = "\U000f0318" # md_lan_connect
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.value = self._read_etc_hostname()
if not self.value:
self.value = platform.node()
@staticmethod
def _read_etc_hostname() -> Optional[str]:
try:
with open("/etc/hostname", encoding="UTF-8") as f_hostname:
return f_hostname.read().rstrip()
except FileNotFoundError:
return None