From 672cf9fffed7852beaf582eba148a6133d69c5e9 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 25 Aug 2021 11:38:41 +0530 Subject: [PATCH] Start work on transfer kitten --- kittens/transfer/__init__.py | 0 kittens/transfer/main.py | 38 ++++++++++++++++++++++++++++++++++++ kitty/cli_stub.py | 5 ++++- 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 kittens/transfer/__init__.py create mode 100644 kittens/transfer/main.py diff --git a/kittens/transfer/__init__.py b/kittens/transfer/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/kittens/transfer/main.py b/kittens/transfer/main.py new file mode 100644 index 000000000..f67803fba --- /dev/null +++ b/kittens/transfer/main.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +# License: GPLv3 Copyright: 2021, Kovid Goyal + +import sys +from typing import List + +from kitty.cli import parse_args +from kitty.cli_stub import TransferCLIOptions + + +def option_text() -> str: + return '''\ +--direction -d +default=send +choices=send,receive +Whether to send or receive files. +''' + + +def send_main(cli_opts: TransferCLIOptions, args: List[str]) -> None: + pass + + +def main(args: List[str]) -> None: + cli_opts, items = parse_args( + args[1:], option_text, '', 'Transfer files over the TTY device', + 'kitty transfer', result_class=TransferCLIOptions + ) + if not items: + raise SystemExit('Usage: kitty +kitten transfer file_or_directory ...') + if cli_opts.direction == 'send': + send_main(cli_opts, items) + return + + +if __name__ == '__main__': + main(sys.argv) diff --git a/kitty/cli_stub.py b/kitty/cli_stub.py index fbccbbf80..a792b5de2 100644 --- a/kitty/cli_stub.py +++ b/kitty/cli_stub.py @@ -14,7 +14,7 @@ LaunchCLIOptions = AskCLIOptions = ClipboardCLIOptions = DiffCLIOptions = CLIOpt HintsCLIOptions = IcatCLIOptions = PanelCLIOptions = ResizeCLIOptions = CLIOptions ErrorCLIOptions = UnicodeCLIOptions = RCOptions = RemoteFileCLIOptions = CLIOptions QueryTerminalCLIOptions = BroadcastCLIOptions = ShowKeyCLIOptions = CLIOptions -ThemesCLIOptions = CLIOptions +ThemesCLIOptions = TransferCLIOptions = CLIOptions def generate_stub() -> None: @@ -76,6 +76,9 @@ def generate_stub() -> None: from kittens.themes.main import OPTIONS do(OPTIONS(), 'ThemesCLIOptions') + from kittens.transfer.main import option_text as OPTIONS + do(OPTIONS(), 'TransferCLIOptions') + from kitty.rc.base import all_command_names, command_for_name for cmd_name in all_command_names(): cmd = command_for_name(cmd_name)