39 lines
		
	
	
		
			875 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			875 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| print_usage() {
 | |
| cat >&2 <<USAGE
 | |
| Usage: $0 vmname
 | |
| Connects to another VM console using the admin.vm.Console RPC service.
 | |
| USAGE
 | |
| }
 | |
| 
 | |
| if [ $# -lt 1 ] ; then
 | |
|     print_usage
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| QREXEC_REQUESTED_TARGET="$1"
 | |
| 
 | |
| qrexec_console() {
 | |
|     QREXEC_REQUESTED_TARGET="$1"
 | |
| 
 | |
|     qrexec-client-vm "$QREXEC_REQUESTED_TARGET" admin.vm.Console
 | |
| 
 | |
|     # exit code 200 is flock exit code in admin.vm.Console
 | |
|     exit_code=$?
 | |
|     if [ $exit_code -gt 0 ]; then
 | |
|         if [ $exit_code -ne 200 ]; then
 | |
|             printf "Cannot connect to %s" "$QREXEC_REQUESTED_TARGET"
 | |
|         else
 | |
|             printf "A qube is already connected to %s" "$QREXEC_REQUESTED_TARGET"
 | |
|         fi
 | |
|         exit 1
 | |
|     fi
 | |
| }
 | |
| 
 | |
| export -f qrexec_console
 | |
| 
 | |
| printf "Use '^]' to exit remote console\n"
 | |
| socat file:/dev/tty,rawer,escape=0x1d SYSTEM:"qrexec_console $QREXEC_REQUESTED_TARGET" 2>/dev/null
 | |
| printf '\n'
 | 
