From f632659563acb7b8d481fdff9acd8305acf29b98 Mon Sep 17 00:00:00 2001 From: Levente Polyak Date: Tue, 26 Sep 2023 22:09:41 +0200 Subject: fix(clone): ssh connection may require user input (key unlocking etc) Anything that requires user input (such as a key unlock or hostkey verify) will block the terminal and wait for input which will never come. When cloning or configuring a repo via ssh we therefore initially connect to gitlab to warm the connection. Afterwards users are expected to either have setup a ssh ControlMaster or use something like a ssh agent. Fixes #148 Component: pkgctl repo clone/configure Co-Authored-by: Christian Heusel Signed-off-by: Christian Heusel Signed-off-by: Levente Polyak --- src/lib/repo/configure.sh | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/lib/repo/configure.sh') diff --git a/src/lib/repo/configure.sh b/src/lib/repo/configure.sh index 73300ae..1ddb1b8 100644 --- a/src/lib/repo/configure.sh +++ b/src/lib/repo/configure.sh @@ -10,6 +10,8 @@ _DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@} source "${_DEVTOOLS_LIBRARY_DIR}"/lib/common.sh # shellcheck source=src/lib/api/gitlab.sh source "${_DEVTOOLS_LIBRARY_DIR}"/lib/api/gitlab.sh +# shellcheck source=src/lib/util/git.sh +source "${_DEVTOOLS_LIBRARY_DIR}"/lib/util/git.sh source /usr/share/makepkg/util/config.sh source /usr/share/makepkg/util/message.sh @@ -188,6 +190,12 @@ pkgctl_repo_configure() { if [[ -n ${BOLD} ]]; then export DEVTOOLS_COLOR=always fi + + # warm up ssh connection as it may require user input (key unlock, hostkey verification etc) + if [[ ${proto} == ssh ]]; then + git_warmup_ssh_connection + fi + if ! parallel --bar --jobs "${jobs}" "${command}" ::: "${paths[@]}"; then die 'Failed to configure some packages, please check the output' exit 1 -- cgit v1.2.3-54-g00ecf