DRYer: Get hostname
This commit is contained in:
parent
63a08dc6cc
commit
6a1b456bac
@ -4,12 +4,13 @@
|
||||
import os
|
||||
import re
|
||||
import signal
|
||||
import socket
|
||||
import subprocess
|
||||
import sys
|
||||
from typing import Callable, cast
|
||||
from urllib.parse import quote_from_bytes
|
||||
|
||||
from kitty.utils import get_hostname
|
||||
|
||||
|
||||
def write_hyperlink(write: Callable[[bytes], None], url: bytes, line: bytes, frag: bytes = b'') -> None:
|
||||
text = b'\033]8;;' + url
|
||||
@ -76,7 +77,7 @@ def main() -> None:
|
||||
num_pat = re.compile(br'^(\d+)([:-])')
|
||||
|
||||
in_result: bytes = b''
|
||||
hostname = socket.gethostname().encode('utf-8')
|
||||
hostname = get_hostname().encode('utf-8')
|
||||
|
||||
try:
|
||||
for line in p.stdout:
|
||||
|
||||
15
kitty/cli.py
15
kitty/cli.py
@ -4,7 +4,6 @@
|
||||
import os
|
||||
import re
|
||||
import shlex
|
||||
import socket
|
||||
import sys
|
||||
from collections import deque
|
||||
from enum import Enum, auto
|
||||
@ -305,6 +304,12 @@ def env(x: str) -> str:
|
||||
role_map['envvar'] = role_map['env']
|
||||
|
||||
|
||||
@run_once
|
||||
def hostname() -> str:
|
||||
from .utils import get_hostname
|
||||
return get_hostname(fallback='localhost')
|
||||
|
||||
|
||||
def hyperlink_for_url(url: str, text: str) -> str:
|
||||
if sys.stdout.isatty():
|
||||
return f'\x1b]8;;{url}\x1b\\\x1b[4:3;58:5:4m{text}\x1b[4:0;59m\x1b]8;;\x1b\\'
|
||||
@ -315,7 +320,7 @@ def hyperlink_for_path(path: str, text: str) -> str:
|
||||
path = os.path.abspath(path).replace(os.sep, "/")
|
||||
if os.path.isdir(path):
|
||||
path += path.rstrip("/") + "/"
|
||||
return hyperlink_for_url(f'file://{socket.gethostname()}{path}', text)
|
||||
return hyperlink_for_url(f'file://{hostname()}{path}', text)
|
||||
|
||||
|
||||
@role
|
||||
@ -337,12 +342,6 @@ def doc(x: str) -> str:
|
||||
return ref_hyperlink(x, 'doc-')
|
||||
|
||||
|
||||
@run_once
|
||||
def hostname() -> str:
|
||||
import socket
|
||||
return socket.gethostname() or 'localhost'
|
||||
|
||||
|
||||
def ref_hyperlink(x: str, prefix: str = '') -> str:
|
||||
t, q = text_and_target(x)
|
||||
url = f'kitty+doc://{hostname()}/#ref={prefix}{q}'
|
||||
|
||||
@ -595,6 +595,14 @@ def natsort_ints(iterable: Iterable[str]) -> List[str]:
|
||||
return sorted(iterable, key=alphanum_key)
|
||||
|
||||
|
||||
def get_hostname(fallback: str = '') -> str:
|
||||
import socket
|
||||
try:
|
||||
return socket.gethostname() or fallback
|
||||
except Exception:
|
||||
return fallback
|
||||
|
||||
|
||||
def resolve_editor_cmd(editor: str, shell_env: Mapping[str, str]) -> Optional[str]:
|
||||
import shlex
|
||||
editor_cmd = shlex.split(editor)
|
||||
|
||||
@ -853,11 +853,8 @@ class Window:
|
||||
return
|
||||
if (not purl.scheme or purl.scheme == 'file'):
|
||||
if purl.netloc:
|
||||
from socket import gethostname
|
||||
try:
|
||||
hostname = gethostname()
|
||||
except Exception:
|
||||
hostname = ''
|
||||
from .utils import get_hostname
|
||||
hostname = get_hostname()
|
||||
remote_hostname = purl.netloc.partition(':')[0]
|
||||
if remote_hostname and remote_hostname != hostname and remote_hostname != 'localhost':
|
||||
self.handle_remote_file(purl.netloc, unquote(purl.path))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user