@ -10,51 +10,25 @@ GITHUB_ACTION_PATH="${GITHUB_ACTION_PATH%/}"
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					DRONE_SSH_RELEASE_URL = " ${ DRONE_SSH_RELEASE_URL :- https : //github.com/appleboy/drone-ssh/releases/download } " 
 
					 
					 
					 
					DRONE_SSH_RELEASE_URL = " ${ DRONE_SSH_RELEASE_URL :- https : //github.com/appleboy/drone-ssh/releases/download } " 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					DRONE_SSH_VERSION = " ${ DRONE_SSH_VERSION :- 1 .8.1 } " 
 
					 
					 
					 
					DRONE_SSH_VERSION = " ${ DRONE_SSH_VERSION :- 1 .8.1 } " 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					function  log_error( )  { 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  echo  " $1 "  >& 2 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  exit  " $2 " 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					} 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					function  detect_client_info( )  { 
 
					 
					 
					 
					function  detect_client_info( )  { 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  if  [  -n " ${ SSH_CLIENT_OS - } "  ] ;  then 
 
					 
					 
					 
					  CLIENT_PLATFORM = " ${ SSH_CLIENT_OS :- $( uname -s |  tr '[:upper:]'  '[:lower:]' ) } " 
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    CLIENT_PLATFORM = " ${ SSH_CLIENT_OS } " 
 
					 
					 
					 
					  CLIENT_ARCH = " ${ SSH_CLIENT_ARCH :- $( uname -m) } " 
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					  else 
 
					 
					 
					 
					
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    local  kernel
 
					 
					 
					 
					  case  " ${ CLIENT_PLATFORM } "  in
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    kernel = " $( uname -s) " 
 
					 
					 
					 
					  darwin |  linux |  windows)  ; ; 
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    case  " ${ kernel } "  in
 
					 
					 
					 
					  *)  log_error " Unknown, unsupported platform:  ${ CLIENT_PLATFORM } . Supported platforms: Linux, Darwin, and Windows. "  2  ; ; 
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    Darwin) 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      CLIENT_PLATFORM = "darwin" 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      ; ; 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    Linux) 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      CLIENT_PLATFORM = "linux" 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      ; ; 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    Windows) 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      CLIENT_PLATFORM = "windows" 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      ; ; 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    *) 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      echo  " Unknown, unsupported platform:  ${ kernel } . "  >& 2 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      echo  "Supported platforms: Linux, Darwin and Windows."  >& 2 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      echo  "Bailing out."  >& 2 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      exit  2 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      ; ; 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					  esac 
 
					 
					 
					 
					  esac 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  fi 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  if  [  -n " ${ SSH_CLIENT_ARCH - } "  ] ;  then 
 
					 
					 
					 
					  case  " ${ CLIENT_ARCH } "  in
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    CLIENT_ARCH = " ${ SSH_CLIENT_ARCH } " 
 
					 
					 
					 
					  x86_64* |  i?86_64* |  amd64*)  CLIENT_ARCH = "amd64"  ; ; 
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					  else 
 
					 
					 
					 
					  aarch64* |  arm64*)  CLIENT_ARCH = "arm64"  ; ; 
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    local  machine
 
					 
					 
					 
					  *)  log_error " Unknown, unsupported architecture:  ${ CLIENT_ARCH } . Supported architectures: x86_64, i686, arm64. "  3  ; ; 
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    machine = " $( uname -m) " 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    case  " ${ machine } "  in
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    x86_64* |  i?86_64* |  amd64*) 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      CLIENT_ARCH = "amd64" 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      ; ; 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    aarch64* |  arm64*) 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      CLIENT_ARCH = "arm64" 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      ; ; 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    *) 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      echo  " Unknown, unsupported architecture ( ${ machine } ). "  >& 2 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      echo  "Supported architectures x86_64, i686, arm64."  >& 2 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      echo  "Bailing out."  >& 2 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      exit  3 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      ; ; 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					  esac 
 
					 
					 
					 
					  esac 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  fi 
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					} 
 
					 
					 
					 
					} 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					detect_client_info
 
					 
					 
					 
					detect_client_info
 
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -62,16 +36,18 @@ DOWNLOAD_URL_PREFIX="${DRONE_SSH_RELEASE_URL}/v${DRONE_SSH_VERSION}"
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					CLIENT_BINARY = " drone-ssh- ${ DRONE_SSH_VERSION } - ${ CLIENT_PLATFORM } - ${ CLIENT_ARCH } " 
 
					 
					 
					 
					CLIENT_BINARY = " drone-ssh- ${ DRONE_SSH_VERSION } - ${ CLIENT_PLATFORM } - ${ CLIENT_ARCH } " 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					TARGET = " ${ GITHUB_ACTION_PATH } / ${ CLIENT_BINARY } " 
 
					 
					 
					 
					TARGET = " ${ GITHUB_ACTION_PATH } / ${ CLIENT_BINARY } " 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					echo  " Will download  ${ CLIENT_BINARY }  from  ${ DOWNLOAD_URL_PREFIX } " 
 
					 
					 
					 
					echo  " Will download  ${ CLIENT_BINARY }  from  ${ DOWNLOAD_URL_PREFIX } " 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					curl -fsSL --retry 5  --keepalive-time 2  " ${ DOWNLOAD_URL_PREFIX } / ${ CLIENT_BINARY } "  -o ${ TARGET } 
 
					 
					 
					 
					curl -fsSL --retry 5  --keepalive-time 2  " ${ DOWNLOAD_URL_PREFIX } / ${ CLIENT_BINARY } "  -o " ${ TARGET } " 
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					chmod +x ${ TARGET } 
 
					 
					 
					 
					chmod +x " ${ TARGET } " 
 
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					echo  "======= CLI Version =======" 
 
					 
					 
					 
					echo  "======= CLI Version =======" 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					sh -c " ${ TARGET }  --version "  # print version  
 
					 
					 
					 
					" ${ TARGET } "  --version
 
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					echo  "===========================" 
 
					 
					 
					 
					echo  "===========================" 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					if  [ [  " $INPUT_CAPTURE_STDOUT "  = =  'true'  ] ] ;  then 
 
					 
					 
					 
					if  [ [  " ${ INPUT_CAPTURE_STDOUT } "  = =  'true'  ] ] ;  then 
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					  echo  'stdout<<EOF'  >>$GITHUB_OUTPUT           # use heredoc for multiline output 
 
					 
					 
					 
					  { 
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					  sh -c " ${ TARGET }   $* "  |  tee -a $GITHUB_OUTPUT  # run the command 
 
					 
					 
					 
					    echo  'stdout<<EOF' 
 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					  echo  'EOF'  >>$GITHUB_OUTPUT 
 
					 
					 
					 
					    " ${ TARGET } "  " $@ "  |  tee -a " ${ GITHUB_OUTPUT } " 
 
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    echo  'EOF' 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  }  >>" ${ GITHUB_OUTPUT } " 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					else 
 
					 
					 
					 
					else 
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  sh -c " ${ TARGET }   $* "  # run the command 
 
					 
					 
					 
					  " ${ TARGET } "  " $@ " 
 
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					fi 
 
					 
					 
					 
					fi