#!/bin/sh if '[' '-n' "${ZSH_VERSION-}" ']'; then 'emulate' 'sh' '-o' 'no_aliases' '-o' 'no_glob' else 'set' '-f' fi _z4h_bypass='' for _z4h_ssh_cmd in 'tar' 'tail' 'rm' 'mkdir' 'mv' 'cp' 'ln' 'wc' 'cat' 'uname' 'tr'; do if ! command -v "$_z4h_ssh_cmd" >'/dev/null' 2>&1; then _z4h_bypass='1' 'break' fi done if '[' '-z' "$_z4h_bypass" ']'; then { _z4h_ssh_platform="$('command' 'uname' '-sm')" && _z4h_ssh_platform="$('printf' '%s' "$_z4h_ssh_platform" | 'command' 'tr' '[A-Z]' '[a-z]')" || _z4h_ssh_platform='' } 2>'/dev/null' case "$_z4h_ssh_platform" in 'darwin arm64');; 'darwin x86_64');; 'linux aarch64');; 'linux armv6l');; 'linux armv7l');; 'linux armv8l');; 'linux x86_64');; 'linux i686');; *) _z4h_bypass='1';; esac fi if '[' '-n' "$_z4h_bypass" ']'; then command -v 'rm' >'/dev/null' 2>&1 && 'command' 'rm' '-f' '--' "$0" export TERM=^TERM^ if '[' '-x' "${SHELL-}" ']'; then case "/$SHELL" in */'ksh93') 'exec' "$SHELL" '-l'; 'exit';; */'dash') 'exec' "$SHELL" '-l'; 'exit';; */'vbash') 'exec' "$SHELL" '-l'; 'exit';; */'bash') 'exec' "$SHELL" '-l'; 'exit';; */'tcsh') 'exec' "$SHELL" '-l'; 'exit';; */'csh') 'exec' "$SHELL" '-l'; 'exit';; */'zsh') 'exec' "$SHELL" '-l'; 'exit';; esac fi 'printf' '\001z4h.%s%s' ^DUMP_MARKER^ 'bypass ' 'exit' fi 'set' '--' "$0" _z4h_ssh_error() { >&2 'printf' '\n' >&2 'printf' '\033[33mz4h\033[0m: failed to start \033[32mzsh\033[0m on \033[1m%s\033[0m\n' ^SSH_HOST^ >&2 'printf' '\n' >&2 'printf' 'See error messages above to identify the culprit.\n' >&2 'printf' '\n' >&2 'printf' 'Open login shell on \033[1m%s\033[0m:\n' ^SSH_HOST^ >&2 'printf' '\n' >&2 'printf' ' \033[4;32mcommand\033[0m \033[32mssh\033[0m %s\n' ^SSH_ARGS^ >&2 'printf' '\n' >&2 'printf' 'Open interactive \033[32msh\033[0m on \033[1m%s\033[0m:\n' ^SSH_HOST^ >&2 'printf' '\n' >&2 'printf' ' \033[4;32mcommand\033[0m \033[32mssh\033[0m %s sh -i\n' ^SSH_ARGS^ >&2 'printf' '\n' >&2 'printf' 'Configure \033[32mz4h\033[0m \033[1mssh\033[0m to open login shell on \033[1m%s\033[0m (like above):\n' ^SSH_HOST^ >&2 'printf' '\n' >&2 'printf' ' \033[32mzstyle\033[0m \033[33m\047:z4h:ssh:%s\047\033[0m enable no\n' ^SSH_HOST^ >&2 'printf' '\n' } _z4h_ssh_mktemp() { if '[' '-n' "${TMPDIR-}" '-a' '(' '(' '-d' "${TMPDIR-}" '-a' '-w' "${TMPDIR-}" ')' '-o' \ '!' '(' '-d' '/tmp' '-a' '-w' '/tmp' ')' ')' ]; then 'set' '--' "$TMPDIR" else 'set' '--' '/tmp' fi if command -v 'mktemp' >'/dev/null' 2>&1; then _z4h_ssh_tmp="$('command' 'mktemp' '-d' -- "$1"/z4h-ssh.XXXXXXXXXX)" else _z4h_ssh_tmp="$1"/z4h-ssh.tmp."$$" '[' '!' '-e' "$_z4h_ssh_tmp" ']' || 'command' 'rm' '-rf' '--' "$_z4h_ssh_tmp" || 'exit' 'command' 'mkdir' '-p' '--' "$_z4h_ssh_tmp" || 'exit' fi } _z4h_ssh_cleanup='"trap" "-" "HUP" "INT" "TERM" "EXIT"; "command" "rm" "-rf" "--" "$@" 2>"/dev/null"' 'trap' "$_z4h_ssh_cleanup; 'exit' '129'" 'HUP' 'trap' "$_z4h_ssh_cleanup; 'exit' '130'" 'INT' 'trap' "$_z4h_ssh_cleanup; 'exit' '143'" 'TERM' 'trap' "$_z4h_ssh_cleanup; _z4h_ssh_error" 'EXIT' z4h_min_version=^MIN_VERSION^ z4h_ssh_client=^SSH_CLIENT^ z4h_ssh_host=^SSH_HOST^ 'export' Z4H_SSH="$z4h_min_version":"$z4h_ssh_client":"$z4h_ssh_host" 'export' P9K_TTY="old" if '[' ^CAN_SAVE_RESTORE_SCREEN^ '=' '1' ']'; then 'export' _Z4H_SSH_MARKER=^DUMP_MARKER^ fi ^PRELUDE^ _z4h_ssh_tar_c_opt= _z4h_ssh_tar_x_opt= if _z4h_ssh_tar_v="$('command' 'tar' '--version' 2>&1)"; then case "$_z4h_ssh_tar_v" in *'GNU tar'*) _z4h_ssh_tar_c_opt='--owner=0 --group=0' _z4h_ssh_tar_x_opt='--warning=no-unknown-keyword --warning=no-timestamp --no-same-owner' ;; esac fi _z4h_ssh_mktemp 'set' '--' "$@" "$_z4h_ssh_tmp" 'command' 'tail' '-c' '+'^DUMP_POS^ '--' "$0" \ | 'command' 'tar' '-C' "$_z4h_ssh_tmp" $_z4h_ssh_tar_x_opt '-xzf' '-' || 'exit' 'command' 'rm' '-f' '--' "$0" || 'exit' 'shift' _z4h_ssh_src='0' for _z4h_ssh_dst in ^SEND_TO^; do _z4h_ssh_src="$((_z4h_ssh_src + 1))" case "$_z4h_ssh_dst" in '') >&2 'printf' '\033[33mz4h\033[0m: \033[31mz4h_ssh_send_files[%s]\033[0m is empty after expansion\n' "$((2 * _z4h_ssh_src + 2))" 'exit' '1' ;; */) >&2 'printf' '\033[33mz4h\033[0m: \033[1mz4h_ssh_send_files[%s]\033[0m ends with \033[1m/\033[0m after expansion: \033[31m%s\033[0m\n' "$((2 * _z4h_ssh_src + 2))" "$_z4h_ssh_dst" 'exit' '1' ;; /*);; *) >&2 'printf' '\033[33mz4h\033[0m: \033[1mz4h_ssh_send_files[%s]\033[0m is not absolute: \033[31m%s\033[0m\n' "$((2 * _z4h_ssh_src + 2))" "$_z4h_ssh_dst" 'exit' '1' ;; esac if '[' '-e' "$_z4h_ssh_dst" ']'; then 'command' 'rm' '-rf' '--' "$_z4h_ssh_dst" || 'exit' fi if '[' '-e' "$1"/"$_z4h_ssh_src" ']'; then _z4h_ssh_dir="${_z4h_ssh_dst%/*}" if '[' '!' '-e' "$_z4h_ssh_dir" ]; then 'command' 'mkdir' '-p' '--' "$_z4h_ssh_dir" || 'exit' fi if ! 'command' 'mv' '-f' '--' "$1"/"$_z4h_ssh_src" "$_z4h_ssh_dst" 2>'/dev/null'; then 'command' 'cp' '-rf' '--' "$1"/"$_z4h_ssh_src" "$_z4h_ssh_dst" || 'exit' fi fi done 'rm' '-rf' '--' "$_z4h_ssh_tmp" || 'exit' ^SETUP^ 'set' '--' "$0" 'printf' '' >"$0" || 'exit' ( 'trap' '-' 'HUP' 'INT' 'TERM' 'EXIT' 'unset' '-f' '_z4h_ssh_error' '_z4h_ssh_mktemp' 'unset' '_z4h_ssh_cleanup' '_z4h_ssh_tar_v' '_z4h_ssh_tar_c_opt' '_z4h_ssh_tar_x_opt' 'unset' '_z4h_ssh_cmd' '_z4h_ssh_tmp' '_z4h_ssh_src' '_z4h_ssh_dst' 'z4h_min_version' 'unset' 'z4h_ssh_client' 'z4h_ssh_host' '_z4h_ssh_platform' export _z4h_ssh_feedback="$0" Z4H_BOOTSTRAPPING='1' 'set' '+f' 'set' '--' if '[' '-n' "${ZSH_VERSION-}" ']'; then 'setopt' 'aliases' fi ^RUN^ _z4h_ssh_ret="$?" 'set' '-f' 'command' 'rm' '--' "$0" || 'exit' 'exit' "$_z4h_ssh_ret" ) _z4h_ssh_ret="${?#0}" '[' '-e' "$0" ']' || 'exit' "${_z4h_ssh_ret:-1}" 'trap' "$_z4h_ssh_cleanup" 'EXIT' '.' "$0" 'rm' '-f' '--' "$0" || 'exit' 'set' '--' ^TEARDOWN^ if ^EMPTY_RETRIEVE_FROM^; then 'trap' '-' 'HUP' 'INT' 'TERM' 'EXIT' 'exit' "${_z4h_ssh_ret:-0}" fi _z4h_ssh_mktemp 'set' '--' "$@" "$_z4h_ssh_tmp" _z4h_ssh_dst='0' _z4h_ssh_dst_list='' for _z4h_ssh_src in ^RETRIEVE_FROM^; do _z4h_ssh_dst="$((_z4h_ssh_dst + 1))" if '[' '-z' "$_z4h_ssh_src" ']'; then >&2 'printf' '\033[33mz4h\033[0m: empty file source path \033[31mnumber '$((_z4h_ssh_dst+1))'\033[0m\n' 'exit' '1' fi if '[' '-e' "$_z4h_ssh_src" ']'; then 'command' 'ln' '-s' '--' "$_z4h_ssh_src" "$_z4h_ssh_tmp"/"$_z4h_ssh_dst" || 'exit' _z4h_ssh_dst_list="$_z4h_ssh_dst_list $_z4h_ssh_dst" fi done _z4h_dump_size='0' if command -v 'base64' >'/dev/null' 2>&1 && command -v 'tr' >'/dev/null' 2>&1; then if '[' '-n' "$_z4h_ssh_dst_list" ']'; then case "$_z4h_ssh_tar_v" in *'GNU tar'*) _z4h_ssh_tar_opt='--owner=0 --group=0';; esac 'command' 'tar' '-C' "$_z4h_ssh_tmp" $tar_opt '-czhf' "$_z4h_ssh_tmp"/dump.tar.gz \ '--' $_z4h_ssh_dst_list || 'exit' 'base64' <"$_z4h_ssh_tmp"/dump.tar.gz >"$_z4h_ssh_tmp"/dump.base64 || 'exit' 'command' 'tr' '-d' '\n' <"$_z4h_ssh_tmp"/dump.base64 >"$_z4h_ssh_tmp"/dump.base64-sl || 'exit' _z4h_dump_size="$('command' 'wc' '-c' <"$_z4h_ssh_tmp"/dump.base64-sl)" || 'exit' fi fi while '[' "${_z4h_dump_size# }" '!=' "$_z4h_dump_size" ']'; do _z4h_dump_size="${_z4h_dump_size# }" done '[' "${#_z4h_dump_size}" '-lt' '16' ']' || _z4h_dump_size='0' while '[' "${#_z4h_dump_size}" '-lt' '16' ']'; do _z4h_dump_size="$_z4h_dump_size " done { 'printf' '\001z4h.%s%s' ^DUMP_MARKER^ "$_z4h_dump_size" || 'exit' if '[' "$_z4h_dump_size" '!=' '0 ' ']'; then 'command' 'cat' '--' "$_z4h_ssh_tmp"/dump.base64-sl || 'exit' fi } 2>'/dev/null' 'command' 'rm' '-rf' '--' "$@" || 'exit' 'trap' '-' 'HUP' 'INT' 'TERM' 'EXIT' 'exit' "${_z4h_ssh_ret:-0}"