Commit graph

203 commits

Author SHA1 Message Date
Kovid Goyal
6e921300e2
Let ssh concat the cli args for us 2022-03-08 19:49:25 +05:30
Kovid Goyal
5e457da30b
Only use bz2 compression if bzip2 is available 2022-03-07 20:44:26 +05:30
Kovid Goyal
855718b179
ssh kitten: match hostnames against both remote hostname and hostname used on the command line to connect to it 2022-03-07 20:32:02 +05:30
Kovid Goyal
c9071a66ca
ssh kitten: Add an option to change the cwd at login 2022-03-07 12:24:37 +05:30
Kovid Goyal
b0ea960159
Dont use --no-same-owner when extracting tar archives
This flag is missing on OpenBSD and is the default on other platforms
when extracting as non-root. Make the uname/gname taringo field empty so
when extracting as root files will always be owned by root.
2022-03-07 12:10:45 +05:30
Kovid Goyal
d4d4e00f9d
Merge branch 'ksi' of https://github.com/page-down/kitty 2022-03-07 11:18:15 +05:30
Kovid Goyal
68df13d3fe
Fix recursive definitions in env vars not expanded 2022-03-07 11:07:26 +05:30
pagedown
397fbe7ad3
Avoid unnecessary which and fix typos 2022-03-07 11:30:12 +08:00
Kovid Goyal
6ff69c88df
... 2022-03-07 06:58:14 +05:30
Kovid Goyal
6e4d3c98da
Ensure pw file is cleaned up on kitten exit
This way it is cleaned up even if ssh fails
2022-03-07 06:54:11 +05:30
Kovid Goyal
2404eba11f
ssh kitten: Passthrough to ssh if run outside of kitty
Also, ensure that the ssh data request is only served if it is received
over the tty of the correct kitty window.
2022-03-07 06:48:18 +05:30
Kovid Goyal
7f9fec061a
bootstrap.py is now tested the same as bootsstrap.sh 2022-03-06 14:26:15 +05:30
Kovid Goyal
c713dc0ca8
Allow using a --kitten argument with the ssh kitten to make it easier to override settings from ssh.conf 2022-03-06 10:07:46 +05:30
Kovid Goyal
31ea5d74a7
Exclude junk directories when adding user files as well 2022-03-06 10:00:02 +05:30
Kovid Goyal
31b01d42c0
use inherited instead of inherit 2022-03-06 09:54:33 +05:30
Kovid Goyal
675411df85
Start work on python bootstrap 2022-03-05 15:43:55 +05:30
Kovid Goyal
ffa79d731c
Allow configuring the ssh kitten via env vars 2022-03-05 12:29:55 +05:30
Kovid Goyal
01dd0416ac
Add an option to control the login shell 2022-03-05 11:16:15 +05:30
Kovid Goyal
0bd1676978
Some cleanup 2022-03-05 10:58:42 +05:30
Kovid Goyal
f3407959a6
Start work on python bootstrap script 2022-03-05 10:54:21 +05:30
Kovid Goyal
e797ba4800
Allow matching on hostname and username 2022-03-04 12:42:31 +05:30
Kovid Goyal
fe27ee2d79
Allow configuring the interpreter to use on the remote host 2022-03-04 12:18:27 +05:30
Kovid Goyal
e0c984046c
EXEC_CMD must come after login_shell detection since it can use login_shell 2022-03-04 10:00:12 +05:30
Kovid Goyal
64d6337612
... 2022-03-04 09:54:17 +05:30
Kovid Goyal
499b30d175
Allow specifying multiple matching hostnames 2022-03-04 07:23:35 +05:30
Kovid Goyal
ef9adc92c8
Note on how to use include for DRYer config 2022-03-04 07:13:56 +05:30
Kovid Goyal
f1ce8c0e8a
Add some docs for the ssh kitten 2022-03-03 22:37:24 +05:30
Kovid Goyal
7d653cb7bf
Allow copying the same file to multiple locations 2022-03-03 21:24:45 +05:30
Kovid Goyal
b4cc38a1d9
Fix symlink extraction over ssh 2022-03-03 21:24:45 +05:30
Kovid Goyal
8867317b6a
Allow transferring files outside of HOME 2022-03-03 21:24:45 +05:30
Kovid Goyal
4b6bfaffba
More work on ssh copy 2022-03-03 21:24:45 +05:30
Kovid Goyal
fadae42715
Work on parsing copy instructions 2022-03-03 21:24:45 +05:30
Kovid Goyal
77c9affc00
Start work on copy instructions 2022-03-03 21:24:45 +05:30
Kovid Goyal
e5ba15949b
$size doesnt need to be global 2022-03-03 21:24:45 +05:30
Kovid Goyal
a3e59697a1
... 2022-03-03 21:24:45 +05:30
Kovid Goyal
95da414511
Avoid one record read 2022-03-03 21:24:45 +05:30
Kovid Goyal
c0d5ace640
Prevent invalid root paths 2022-03-03 21:24:45 +05:30
Kovid Goyal
ae6665493a
Implement setting of env vars 2022-03-03 21:24:44 +05:30
Kovid Goyal
c6f37afeff
Add config to control shell integration per host 2022-03-03 21:24:44 +05:30
Kovid Goyal
59f656e3ca
Allow controlling where on the remote computer the ssh kitten installs its data 2022-03-03 21:24:44 +05:30
Kovid Goyal
12658c4756
Make ssh data start request transmission more robust 2022-03-03 21:24:44 +05:30
Kovid Goyal
37c185462a
Handle error messages form terminal during bootstrap 2022-03-03 21:24:44 +05:30
Kovid Goyal
53c8485a7a
Get env conf working with tests 2022-03-03 21:24:44 +05:30
Kovid Goyal
846021296f
Start work on config infrastructure for ssh kitten 2022-03-03 21:24:44 +05:30
Kovid Goyal
02a68e7541
Pass the value of shell_integration in the tarfile
Allows per host overrides and also avoids needing to read kitty.conf in
the ssh kitten
2022-03-03 21:24:44 +05:30
Kovid Goyal
fda9415873
Use a record separator to delimit the start of data
Needed because the user could press keys and send data to the tty
before kitty can send the ssh data
2022-03-03 21:24:44 +05:30
Kovid Goyal
99d0c2d846
Get reading data working on macOS 2022-03-03 21:24:43 +05:30
Kovid Goyal
a71e7d7eb1
Simplify data transmission 2022-03-03 21:24:43 +05:30
Kovid Goyal
ddb8753548
Work on enabling shell integration over ssh 2022-03-03 21:24:43 +05:30
Kovid Goyal
e73525d0a2
Start work on testing the bootstrap script 2022-03-03 21:24:43 +05:30
Kovid Goyal
f37d947dd5
more work on ssh data transmission 2022-03-03 21:24:42 +05:30
Kovid Goyal
2dd7c3b939
More work on ssh bootstrap 2022-03-03 21:24:42 +05:30
Kovid Goyal
1e7edd0218
... 2022-02-03 20:14:52 +05:30
Kovid Goyal
2fd8ef389e
Fix use-python not working reliably with SSH kitten 2022-02-03 19:58:10 +05:30
Kovid Goyal
53589c3954
ssh kitten: Fix location of generated terminfo files on NetBSD
Fixes #4622
2022-02-03 19:51:37 +05:30
pagedown
4a3ed62809
Refactor: More f-string for kittens 2022-01-29 20:23:34 +08:00
pagedown
15615a4cd1
Avoid defining variables with the same name that already exist
Avoid using existing parameter names for local variables.
Avoid using variable names from upper level for nested loops.
Avoid local variables hiding existing global variables.
2022-01-01 21:29:32 +08:00
Kovid Goyal
b22bda3cba
Add more type annotations 2021-10-27 11:36:34 +05:30
Kovid Goyal
6546c1da9b
run pyupgrade to upgrade the codebase to python3.6 2021-10-21 12:43:55 +05:30
Kovid Goyal
3bc7b5bad9
Remote file transfer: Fix transfer not working is custom ssh port or identity is specified on the SSH command line
Fixes #4067
2021-09-27 10:58:40 +05:30
Kovid Goyal
b70064d1be
Use a default set of ssh options if the binary is not found 2021-09-27 10:49:38 +05:30
Kovid Goyal
f3333ce941
Fix getting connection data from ssh command line when -- is used in the command line
This broke the remote file kitten when using the ssh kitten as the later
was changed to use -- recently.

Fixes #3929
2021-08-13 17:14:43 +05:30
Kovid Goyal
075fb2eaf2
DRYer 2021-07-22 17:56:21 +05:30
Kovid Goyal
21a2768ec3
... 2021-07-22 17:31:54 +05:30
Kovid Goyal
554c840d4e
ssh kitten: exit with 255 for unknown arg to match ssh 2021-07-22 17:30:07 +05:30
Kovid Goyal
9c28a1ba31
ssh kitten: handle -- 2021-07-22 17:03:47 +05:30
Kovid Goyal
8a4b326127
Finish completion for ssh kitten
Fixes #3760
2021-06-26 12:28:12 +05:30
Kovid Goyal
051374cd55
Add support for comma separated completions 2021-06-26 10:52:14 +05:30
Kovid Goyal
71cd92da29
Store match group properties on the match group object 2021-06-26 09:47:21 +05:30
Kovid Goyal
c2d3a0c8b4
Completion for choice args 2021-06-26 09:18:36 +05:30
Kovid Goyal
fe8b151666
Complete option 2021-06-25 22:53:55 +05:30
Kovid Goyal
d8d5a8fada
More work on completion for the SSH kitten 2021-06-25 17:50:08 +05:30
Kovid Goyal
21ce0e90bf
Code to get list of known host names 2021-06-25 15:04:17 +05:30
Kovid Goyal
ec420b8012
Start work on completion for ssh kitten 2021-06-25 15:04:17 +05:30
Kovid Goyal
98ae2ac96a
ssh kitten: Use sh rather than /bin/sh
It's not actually required that sh be in /bin.  The hope is that fewer
users alias sh to non POSIX things than put sh in places other than /bin
2021-06-21 16:43:59 +05:30
Kovid Goyal
1c25ed7666
ssh kitten: Fix "Connection closed" message being printed by ssh when running remote commands
Don't force allocate a tty when running remote commands. This
matches ssh behavior as well.
2021-06-21 16:40:07 +05:30
Kovid Goyal
fd4c7a4ed2
ssh kitten: Support system where the login shell is a non-POSIX shell
Now the kitten passes its script to /bin/sh and detects the login shell
using various strategies based on the value of $USER on the remote
machine. The strategies are tried one after another till one succeeds:

1) getent passwd $USER
2) id -P
3) python pwd module
4) parsing /etc/passwd

The hope is that these strategies will fail on fewer systems than
relying on the login shell being POSIX compliant.
2021-06-21 16:30:49 +05:30
Kovid Goyal
962acd1537
ssh kitten: Fix non-standard properties in terminfo such as the ones used for true color not being copied 2021-06-12 07:27:14 +05:30
Kovid Goyal
cf88eb9d60
ssh kitten: Mimic behavior of ssh more closely
Execute any command specified on the command line via the users' shell
on the remote side just as ssh does

Fixes #3638
2021-05-18 15:12:57 +05:30
Kovid Goyal
4e67a92ec4
DRYer 2021-01-31 12:26:54 +05:30
Kovid Goyal
e9e8ef7210
ssh kitten: Allow using python instead of the shell on the server 2021-01-31 09:04:46 +05:30
Kovid Goyal
e160cbf32b
ssh kitten: Fix parsing of combined single letter options to more closely match ssh. Fixes #3053 2020-10-23 16:55:53 +05:30
Kovid Goyal
be29c4a243
Move class definition to utils so can be used from multiple kittens easily 2020-09-15 10:34:37 +05:30
Kovid Goyal
d6e27e776b
Start work on the remote_file kitten
Easy access to files over SSH
2020-09-12 06:36:41 +05:30
Kovid Goyal
149ae2866a
more typing work 2020-03-12 08:10:51 +05:30
Kovid Goyal
ce94a9b2df
More typing work 2020-03-11 09:35:59 +05:30
Kovid Goyal
9beae321d7
More typing work 2020-03-08 22:08:18 +05:30
Kovid Goyal
507fbc7abf
Fix #2399 2020-02-27 07:14:44 +05:30
Kovid Goyal
d5682fe49a
Fix #2137 2019-11-17 08:35:23 +05:30
Luflosi
6cc720a350
Fix typos
Inspired by 4d3ee554b3.
Found using `codespell`.
2019-08-26 12:31:15 +02:00
Kovid Goyal
7ab5244bf5
ssh kitten: Make argument parsing more like ssh
Fixes #1787
2019-07-09 17:48:43 +05:30
Luflosi
a792c94ccf
Use python3 shebang for all python scripts
Fixes #1624.
Use python3 shebang for all python scripts as python still defaults to python2 on many systems.
2019-05-20 14:44:24 +02:00
Kovid Goyal
05d51d8693
Fix #730 2018-07-20 15:55:39 +05:30
Kovid Goyal
bd9a4e9cd8
Dont hardcode the ssh options 2018-06-02 14:30:05 +05:30
Kovid Goyal
06237b85f5
Only add to server_args unconditionally if two non-option args have been seen 2018-06-01 22:55:13 +05:30
Kovid Goyal
d319180e88
... 2018-06-01 22:48:19 +05:30
Kovid Goyal
d8f5dc958d
ssh kitten: Handle combined single character options 2018-06-01 22:47:07 +05:30
Kovid Goyal
cd80a85d2d
ssh kitten: Dont transfer terminfo if any of the -Nnf arguments are passed to ssh 2018-06-01 20:33:57 +05:30
Kovid Goyal
0d7feb0404
ssh kitten: Allow specifying args to pass to ssh
Uses the same syntax as the ssh command. Note that currently specifying
-N -f or similar will not work (it does not make sense anyway as you
only use this kitten if you plan on an interactive ssh session).
Fixes #591
2018-06-01 07:42:25 +05:30
Kovid Goyal
beded75547
Make ssh kitten work with the execrable dash shell 2018-05-23 09:54:33 +05:30
Kovid Goyal
6fbb953aa4
Add a note about needing a temp file for tic 2018-05-22 23:18:11 +05:30
Kovid Goyal
30b38e9fa0
Drop the requirement for having python on the server when using the ssh kitten 2018-05-22 23:15:24 +05:30
Kovid Goyal
d20e801793
Add a kitten to easily ssh into servers that automatically copies the terminfo files over 2018-05-22 22:32:51 +05:30