39 lines
		
	
	
		
			890 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			890 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 EXEC:"/bin/bash -c \'qrexec_console $QREXEC_REQUESTED_TARGET 2>/dev/null\'"
 | 
						|
printf '\n'
 |