#!/usr/bin/perl
# Copyright 2022 SUSE LLC
# SPDX-License-Identifier: GPL-2.0-or-later

use Mojo::Base -strict, -signatures;

use Getopt::Long;
use FindBin;
use lib "$FindBin::Bin/.."; # Ensure OpenQA namespace is in @INC
use OpenQA::Isotovideo::Dewebsockify;

OpenQA::Isotovideo::Dewebsockify::main(parse_args()) unless caller();

sub usage () {
    print <<"END_USAGE";
Usage: $0 --websocketurl <URL> [--listenport <PORT>] [--cookie <COOKIE>] [--loglevel <LEVEL>] [--insecure]
Listens on a TCP port forwarding data to the specified websocket server
    example: --websocketurl wss://... --listenport 590x --cookie "vmware_client=VMware; some_session=foobar" --insecure'
Options:
  --websocketurl   The WebSocket server URL (required).
  --listenport     Port to listen on (default: 5900).
  --cookie         Cookie to include in WebSocket requests.
  --loglevel       Log level (default: 'info').
  --insecure       Allow insecure WebSocket connections.
  --help, -h, -?   Show this help message.
END_USAGE
    exit 0;
}

sub parse_args () {
    my %options;
    GetOptions(\%options, 'websocketurl=s', 'listenport=s', 'cookie=s', 'loglevel=s', 'insecure', 'help|h|?')
        or usage;
    usage if $options{help};
    return \%options;
}
