Compare commits

...

2 Commits

Author SHA1 Message Date
Artem Bliznetsov
3f23c11c39 Опции SSH 2024-04-18 23:37:46 +03:00
Artem Bliznetsov
6bdb255bfa Доработка автозаполнения, использование pv для отображения прогресса 2024-04-18 22:38:34 +03:00
4 changed files with 19 additions and 13 deletions

View File

@ -14,4 +14,4 @@ function _scp_path_completition()
}
complete -F _ssh_connector_completion ssh-helper
complete -F _scp_path_completition scp-helper
complete -o nospace -F _scp_path_completition scp-helper

View File

@ -1,8 +1,8 @@
import os
CMD_TAR_DECOMP='tar -xz'
CMD_TAR_COMP='tar -cz'
SUDO_REMOTE=True
#SSH_ARGS='-C -o ControlMaster=auto -o ControlPersist=60s -o ControlPath=~/.ssh/controlmasters/%r@%h:%p -o PreferredAuthentications=publickey'
SSH_ARGS=''
def get_config():
config_path = os.environ.get('SSH_HELPER_HOST_LIST')
@ -30,6 +30,9 @@ def parse_arg(s):
connection_name = 'local'
path = s
if path == '':
path = '/'
if path[0] not in ('/', '~', '.'):
if connection_name == 'local':
path = './' + path
@ -66,7 +69,7 @@ def add_sudo(s):
return res
def make_ssh_cmd(host, port, user, cmd):
res = f"/usr/bin/ssh {user}@{host} -p {port} '{cmd}'"
res = f"/usr/bin/ssh {user}@{host} {SSH_ARGS} -p {port} '{cmd}'"
return res
def get_connection_config(con_name):

View File

@ -6,7 +6,7 @@ import sys
import subprocess
from helperlib import get_config, parse_arg, add_sudo, make_ssh_cmd, get_path_config
DEBUG = True
DEBUG = False
SUDO_REMOTE = True
def get_conf_names():
@ -56,8 +56,9 @@ if __name__ == '__main__':
cur_arg = get_current_arg(args)
if DEBUG:
print(f'{cur_arg}', file=sys.stderr)
if cur_arg is not None and ':' in cur_arg:
comp_list = []
if cur_arg is not None:
# В нем уже прописали имя подключения
cur_set = get_path_config(cur_arg)
@ -69,7 +70,6 @@ if __name__ == '__main__':
print(f'{obj_list}', file=sys.stderr)
print(cur_set, file=sys.stderr)
comp_list = []
for i in obj_list.split('\n'):
i_res = ''
if cur_set['connection_name'] != 'local':
@ -86,11 +86,9 @@ if __name__ == '__main__':
if DEBUG:
print(f'{comp_list}', file=sys.stderr)
print(' '.join(comp_list))
else:
# Заполняем имя подключения
print('/ '.join(get_conf_names()))
comp_list.extend([f'{i}/' for i in get_conf_names()])
print(' '.join(comp_list))

View File

@ -7,6 +7,8 @@ import os
from helperlib import *
PV_ENABLED = True
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description='Copy files'
@ -29,7 +31,10 @@ if __name__ == '__main__':
make_unpack_cmd
)
full_cmd = f'{in_cmd} | {out_cmd}'
if PV_ENABLED:
full_cmd = f'{in_cmd} | pv | {out_cmd}'
else:
full_cmd = f'{in_cmd} | {out_cmd}'
print("Будет выполнена команда:")
print(full_cmd)
print("продолжить (y/n)")