NAME

WGmeta::Parser::Conf - Parser for Wireguard configurations

SYNOPSIS

use Wireguard::WGmeta::Parser::Conf;
use Wireguard::WGmeta::Util;

# Parse a wireguard configuration file
my $config_contents = read_file('/path/to/config.conf', 'interface_name');

# Define callbacks
my $on_every_value_callback = sub($attribute, $value, $is_wg_meta){
    # do you magic
    return $attribute, $value;
};
my $on_every_section_callback = sub($identifier, $section_type, $is_disabled){
    # do you magic
    return $identifier;
};

# And finally parse the configuration
my $parsed_config = parse_raw_wg_config($config_contents, $on_every_value_callback, $on_every_section_callback);

DESCRIPTION

Parser for Wireguard .conf files with support for custom attributes. A possible implementation is present in Wireguard::WGmeta::Parser::Middleware.

METHODS

parse_raw_wg_config($file_content, $on_every_value, $on_new_section [, $skip, $wg_meta_prefix, $wg_disabled_prefix])

Parses a Wireguard configuration

  • $file_content Content of Wireguard configuration. Warning, if have to ensure that its a valid file!

  • $on_every_value A reference to a callback function, fired at every key/value pair. Expected signature:

    my $on_every_value_callback = sub($attribute, $value, $is_wg_meta){
        # do you magic
        return $attribute, $value;
    };
  • $on_new_section Callback for every section. Expected signature:

    my $on_every_section_callback = sub($identifier, $section_type, $is_disabled){
        # do you magic
        return $identifier;
    };
  • [$skip = 0] When you want to skip some lines at the beginning

  • [$wg_meta_prefix = '#+'] wg-meta prefix. Must start with '#' or ';'

  • [$disabled_prefix = '#-'] disabled prefix. Must start with '#' or ';'

Returns

A reference to a hash similar as described in Wireguard::WGmeta::Parser::Middleware.