Allow custom kitten names with hyphens in them
Apparently there is no way to have config filenames on nixOS/home-manager without hyphens in them. Fixes #8608
This commit is contained in:
parent
91eb0ec735
commit
53fd9892eb
1 changed files with 6 additions and 2 deletions
|
|
@ -87,8 +87,8 @@ class KittenMetadata(NamedTuple):
|
||||||
|
|
||||||
def create_kitten_handler(kitten: str, orig_args: list[str]) -> KittenMetadata:
|
def create_kitten_handler(kitten: str, orig_args: list[str]) -> KittenMetadata:
|
||||||
from kitty.constants import config_dir
|
from kitty.constants import config_dir
|
||||||
kitten = resolved_kitten(kitten)
|
|
||||||
m = import_kitten_main_module(config_dir, kitten)
|
m = import_kitten_main_module(config_dir, kitten)
|
||||||
|
kitten = resolved_kitten(kitten)
|
||||||
main = m['start']
|
main = m['start']
|
||||||
handle_result = m['end']
|
handle_result = m['end']
|
||||||
return KittenMetadata(
|
return KittenMetadata(
|
||||||
|
|
@ -110,12 +110,13 @@ def set_debug(kitten: str) -> None:
|
||||||
|
|
||||||
def launch(args: list[str]) -> None:
|
def launch(args: list[str]) -> None:
|
||||||
config_dir, kitten = args[:2]
|
config_dir, kitten = args[:2]
|
||||||
|
original_kitten_name = kitten
|
||||||
kitten = resolved_kitten(kitten)
|
kitten = resolved_kitten(kitten)
|
||||||
del args[:2]
|
del args[:2]
|
||||||
args = [kitten] + args
|
args = [kitten] + args
|
||||||
os.environ['KITTY_CONFIG_DIRECTORY'] = config_dir
|
os.environ['KITTY_CONFIG_DIRECTORY'] = config_dir
|
||||||
set_debug(kitten)
|
set_debug(kitten)
|
||||||
m = import_kitten_main_module(config_dir, kitten)
|
m = import_kitten_main_module(config_dir, original_kitten_name)
|
||||||
try:
|
try:
|
||||||
result = m['start'](args)
|
result = m['start'](args)
|
||||||
finally:
|
finally:
|
||||||
|
|
@ -139,11 +140,14 @@ def run_kitten(kitten: str, run_name: str = '__main__') -> None:
|
||||||
if kitten in all_kitten_names():
|
if kitten in all_kitten_names():
|
||||||
runpy.run_module(f'kittens.{kitten}.main', run_name=run_name)
|
runpy.run_module(f'kittens.{kitten}.main', run_name=run_name)
|
||||||
return
|
return
|
||||||
|
kitten = original_kitten_name
|
||||||
# Look for a custom kitten
|
# Look for a custom kitten
|
||||||
if not kitten.endswith('.py'):
|
if not kitten.endswith('.py'):
|
||||||
kitten += '.py'
|
kitten += '.py'
|
||||||
from kitty.constants import config_dir
|
from kitty.constants import config_dir
|
||||||
path = path_to_custom_kitten(config_dir, kitten)
|
path = path_to_custom_kitten(config_dir, kitten)
|
||||||
|
if not os.path.exists(path):
|
||||||
|
path = path_to_custom_kitten(config_dir, resolved_kitten(kitten))
|
||||||
if not os.path.exists(path):
|
if not os.path.exists(path):
|
||||||
print('Available builtin kittens:', file=sys.stderr)
|
print('Available builtin kittens:', file=sys.stderr)
|
||||||
for kitten in all_kitten_names():
|
for kitten in all_kitten_names():
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue