Commit Graph

239 Commits

Author SHA1 Message Date
Kovid Goyal
e363303359 Nicer error message for pwfile owner/permission mismatch 2023-07-13 21:26:29 +05:30
Kovid Goyal
a1e5b72ca5 Remote control launch: Fix --env not implemented when using --cwd=current with the SSH kitten
Fixes #6438
2023-07-11 09:22:15 +05:30
Kovid Goyal
092e0fba2c Work on code to run shells from a kitten with shell integration 2023-06-25 19:27:43 +05:30
Kovid Goyal
99012d2659 ssh kitten: Allow configuring the ssh kitten to skip some hosts via a new `delegate` config directive 2023-06-24 09:27:53 +05:30
Kovid Goyal
707cefd78a ssh kitten: When both passthrough args and --kitten args are present dont fail just ignore the kitten args 2023-06-24 09:14:25 +05:30
olzhasar
d0a5d1b3a4 Fix misspellings 2023-06-14 03:39:53 +06:00
Kovid Goyal
e59e42a6c2 simplify API of utils.Once 2023-05-26 22:42:07 +05:30
Kovid Goyal
a1d791083b ssh_kitten: Proper exit code for termination by SIGINT 2023-05-08 16:27:07 +05:30
Kovid Goyal
454acd4f5c ssh kitten: Fix a regression in 0.28.0 that caused interrupt during setup to not be handled gracefully
Fixes #6254
2023-05-08 16:18:05 +05:30
Kovid Goyal
93a5107e79 Fix #6202 2023-04-21 21:35:59 +05:30
Kovid Goyal
6269f78ed2 Make it clearer that exclude operates only on directories 2023-04-18 09:22:34 +05:30
Kovid Goyal
92e68a6e0c Fix #6193 2023-04-18 09:05:28 +05:30
Kovid Goyal
ff55121094 Move the kittens Go code into the kittens folder 2023-03-27 13:06:02 +05:30
pagedown
2416122647 ... 2023-03-14 14:30:11 +08:00
Kovid Goyal
00b3437a05 Remove python implementation of SSH kitten 2023-02-28 12:42:30 +05:30
Kovid Goyal
6de77ce987 Clean up exclude pattern handling 2023-02-26 09:12:12 +05:30
Kovid Goyal
5cc3d3cbfe Fix remaining failing tests 2023-02-26 08:01:04 +05:30
Kovid Goyal
e4002b5691 Switch to a more capable glob implementation that supports ** 2023-02-26 08:01:04 +05:30
Kovid Goyal
525caff938 Move get_connection_data to utils module as it is not needed for the actual kitten 2023-02-26 08:01:03 +05:30
Kovid Goyal
9870c94007 More work on porting the SSH kitten 2023-02-26 08:01:03 +05:30
Kovid Goyal
747411be00 Finish implementation of config file parsing
Still needs tests
2023-02-26 08:01:01 +05:30
Kovid Goyal
32aa580984 Store parsed multi option values on the config object 2023-02-26 08:01:01 +05:30
Kovid Goyal
1470b11024 Dont parse default values 2023-02-26 08:01:01 +05:30
Kovid Goyal
5822bb23f0 Work on porting config file parsing to Go 2023-02-26 08:01:01 +05:30
Kovid Goyal
7c8c7fe3a2 launch: When using --cwd=current for a remote system support running non shell commands as well 2023-02-08 17:52:28 +05:30
Kovid Goyal
244507336b Function to change the remote command in an ssh kitten cmdline 2023-02-08 16:34:33 +05:30
Kovid Goyal
3a126ffa9d Restore permissions check on pwfile
just use RW instead of R as the expected mode
2023-01-26 08:48:35 +05:30
Kovid Goyal
dd6e206f9b Remove unused import 2023-01-26 08:29:37 +05:30
Loren Schlomer
366d65f592 Fixes the ssh kitten
kovidgoyal@5e645a7 fixes the password file creation, allowing it to be
unlinked, but read_data_from_shared_memory/1 rejects the shared object
if it is not read only, and will break the ssh kitten for all
platforms.

This change removes the read only check, relying only on the file
ownership check.

This fully fixes #5928

Signed-off-by: Loren Schlomer <me@schlomie.com>
2023-01-25 11:14:12 -08:00
Kovid Goyal
5e645a7be7 Fix ssh kitten not working on FreeBSD
Apparently on FreeBSD one cannot unlink shared mem if it is not created
with write permissions.

Adding IWRITE to the permissions when creating the shared memory is
harmless. It means any process running as the user can either write to
the file or delete it. Deleting was already possible except on FreeBSD.
As for writing, it's needed on FreeBSD for shared memory to be useable
at all, and since processes running as the user can already completely
access all their data, kitty config files, tty pipes, etc. allowing them
to write to the SHM used here doesnt grant any significant new
capability, since they could just write to ssh.conf in the kitty config
folder to get the ssh kitten to do whatever they like.

Fixes #5928
2023-01-25 23:34:31 +05:30
Kovid Goyal
6b8e5ea225 Rename kitty-tool to kitten
It's easier to type, and cuter.

Also, most, if not all of the TUI parts of
kitty's kittens will eventually be re-written into kitten.

The only downside I can see is that we cant tab complete kitty
anymore, but hopefully there will be less reason to run kitty
from the shell as command line tools migrate to kitten.

Meowrrrr!!!
2023-01-14 15:44:52 +05:30
Kovid Goyal
6e41409a3f Dont run isort on generated conf files 2023-01-09 16:51:59 +05:30
Kovid Goyal
7fe5d7b58f Replace isort with ruff 2023-01-09 16:47:42 +05:30
Kovid Goyal
16775c5539 ssh kitten: Add a kitty-tool wrapper script to auto-download and use kitty-tool
Needs testing.
2022-11-15 13:26:48 +05:30
Kovid Goyal
018811c96c Remove unused code
Completion and remote control have moved into kitty-tool
2022-11-14 15:42:09 +05:30
Kovid Goyal
928a4db817 Implement delegate based completion fof the ssh and hyperlinked_grep kittens 2022-11-14 15:41:59 +05:30
Kovid Goyal
3847837bd0 Forgot to run gen-config.py 2022-10-19 20:50:53 +05:30
Kovid Goyal
1747bbbbcb ssh kitten: Allow using absolute paths for the location of transferred data
Fixes #5607
2022-10-19 20:43:53 +05:30
Kovid Goyal
89570d3b52 ssh kitten: Fix KITTY_PUBLIC_KEY not being encoded properly when transmitting
Fixes #5496
2022-09-10 07:09:58 +05:30
Kovid Goyal
e330c38d4a ssh kitten: Delegate to ssh when -T is used
Fixes #5411
2022-08-24 15:23:41 +05:30
Kovid Goyal
1a643441f3 Make the kitty public key available as an env var to child processes 2022-08-10 12:36:04 +05:30
Kovid Goyal
e2117ee8a4 ssh kitten: Allow completion of ssh options between the destination and command
This contravenes the documented command line parsing behavior of ssh but
matches its actual implementation. Sigh.

Fixes #5322
2022-07-29 08:29:49 +05:30
Kovid Goyal
d9371dc265 ssh kitten: Better handling of exit on keyboard interrupt 2022-07-20 21:40:51 +05:30
Kovid Goyal
ef2a12fbdf Ignore sigint while draining the tty 2022-07-20 19:40:23 +05:30
Kovid Goyal
7215c6d6be ssh kitten: Allow pressing Ctrl-C to abort ssh before the connection is completed
Fixing this involved adding a new mode to kitty where it handles
ctrl-c/z/q by sending signals to the tty foreground process group
instead of delegating to the kernel to do that. Since the pipe may be
full we have no way of knowing when the kernel will get around to
reading the signal byte. So send the signal ourselves.

Fixes #5271
2022-07-20 19:11:14 +05:30
Kovid Goyal
bd9e1f58fe ssh kitten: Make discarding of garbage data after ssh fails more robust
We now roundtrip an UUID via the terminal and only exit after receiving
it back. This guarantees that any pending data in the pipe is discarded.
2022-07-20 13:28:51 +05:30
Kovid Goyal
3a17f54bca Add a note about how to exclude directories in the copy command 2022-07-12 16:23:48 +05:30
Kovid Goyal
a8b756f040 ssh kitten: A new option :code:--symlink-strategy to control how symlinks are copied to the remote machine
Fixes #5249
2022-07-03 14:03:56 +05:30
Kovid Goyal
b3fcb53625 ssh kitten: Allow ssh kitten to work from inside tmux, provided the tmux session inherits the correct KITTY env vars
Fixes #5227
2022-06-29 18:40:22 +05:30
Kovid Goyal
9be68966b4 Also detect ssh kitten run as an overlay 2022-06-08 18:53:54 +05:30