Provided by: x2goserver_4.1.0.6-1.1build1_amd64 bug

NAME

       x2gooptionsstring - X2Go Agent Options String Manipulator and Extractor

SYNOPSIS

       x2gooptionsstring --help|-h|-?
       x2gooptionsstring --man
       x2gooptionsstring [<--mode|-m><=| >t[ransform]|-t] [--compact|-c] [--base64|-b] [--debug|-d] [--]
       options_string [+]|-key[=value] ...
       x2gooptionsstring <--mode|-m><=| >e[xtract]|-e [--base64|-b] [--debug|-d] [--] options_string key[=value]
       ...

DESCRIPTION

       x2gooptionsstring  is  a  utility  for manipulating and extracting data from options strings as passed to
       X2Go/NX Agent.  For more information about supported  options  strings,  refer  to  the  OPTIONS  STRINGS
       section in the X2Go::Server::Agent::NX::Options documentation.

       For  full  support of options string, which are allowed (but not recommended) to include binary data, the
       special --base64|-b switch is supported.  If given, all arguments other than flags must be base64-encoded
       (making it possible to pass  binary  data  via  shells,  for  instance).   The  program's  output,  minus
       potentially debugging messages, will also be base64-encoded.

       Currently, two modes are supported:

       Transform (default)
           Transformation mode is enabled by default if no mode has been explicitly selected.

           Call  this  program  with  optional  flags,  the  options  string  as  the  first  parameter  and the
           transformations to be carried out as additional parameters.  At least one additional parameter (i.e.,
           a transformation) must be provided.  Transformations are described here  briefly,  but  also  in  the
           TRANSFORMATIONS section in the X2Go::Server::Agent::NX::Options documentation.

           It can either add, remove or replace components.

           To add or replace a component, pass key[=value] or +key[=value] as a parameter.  The latter syntax is
           useful  if  key starts with a dash and would therefore be interpreted as a removal operation.  If the
           options string does not include a key key, it will be appended to the end of the options string.   If
           it already exists, either with no value or a different value, the component will be replaced with the
           provided value.

           To  fully  remove  a  component, pass -key.  To only remove it if it is set to a specific value, pass
           -key=value.

           Use the --compact option to minimize the original  options  string,  removing  duplicated  and  empty
           entries.

           Assuming no error happened, the resulting options string is written to stdout.

       Extract
           Extraction mode must be explicitly requested using the -e or <--mode|-m><=| >e[xtract] flags.

           Call  this program with optional flags, the options string as the first parameter and key-value pairs
           to be extracted as additional parameters.  At least one additional parameter (i.e., a key-value  pair
           to extract) must be provided.

           A degenerated key-value pair without an explicit value can be used to test for the existence of a key
           and extract its value at the same time.

           A  full,  proper  key-value pair can be used to test for the existence of a key-value pair exactly as
           provided.

           Assuming no error happened, the extracted key-value pairs will be written to stdout.  Each pair  will
           be  base64-encoded and, if multiple key-value pairs to extract have been provided, delimited via pipe
           characters ("|").

           Key-value pairs which haven't been found in the original options string, as well  as  potentially  an
           empty key-value pair, will be represented as empty fields.

       Refer  to  the  OPTIONS  PARSING section for a description of when and how to terminate options passed to
       this program.

OPTIONS

       --help|-?|-h
               Print a brief help message and exits.

       --man   Prints the manual page and exits.

       --debug|-d
               Enables noisy debug output.

       -t      Shorthand for --mode=transform.

       -e      Shorthand for --mode=extract.

       <--mode|-m><=| >mode string
               Selects a specific program mode.

               Currently, the following mode strings are supported:

               •   transform

               •   extract

               Mode strings can be abbreviated, as long as the  abbreviation  is  uniquely  selecting  one  mode
               exactly.

       --compact|-c
               Remove  duplicate  and  empty  entries  after  the  initial  parsing.   The order of arguments is
               preserved in a first-seen fashion.

               This option is only available in transformation mode.  It will be silently ignored in  extraction
               mode, as compaction is a pre-requisite and done automatically during extraction.

       --base64|-b
               Enable a special full base64 mode.

               Any  binary  data  can be given and output by this program in this mode, even when operating on a
               shell.

               Input parameters must always be provided encoded in base64 form.

               Likewise, the program will always output data encoded in a base64 form.   Since  key-value  pairs
               returned in extraction mode are already base64-encoded and delimited with a character that is not
               legal  in  the base64 encoding, this flag does not modify the extraction's mode output (i.e., you
               will not have to decode the output data twice).

   OPTIONS PARSING
       You can terminate program options parsing via a standard double-dash (--) pseudo-option.   It  is  highly
       recommended to always do so.

       If  you  pass  removal  transformation operations or an extraction key-value pair starts with a dash (-),
       passing  the  options  terminator  is  mandatory,  even  if  no  actual  options  are  used.   Otherwise,
       transformation  operations  or  extraction key-value pairs will be interpreted as options to the program,
       which will almost certainly lead to an error.

       For example, passing "-clipboard" as a transformation operation without  a  previous  options  terminator
       will  be  interpreted  as  the option "-c", with the rest of the string modified into "-lipboard".  Since
       this program does not accept an option called "-l", it will terminate with an error.  Even if the program
       does not terminate with an error due to an unknown option being supplied, a degradation into  options  is
       certainly not what the original transformation operation was supposed to represent.

EXAMPLES

   TRANSFORMATIONS
       For an options string such as

        nx/nx,clipboard=both,foo:50

         calling x2gooptionsstring '--' 'nx/nx,clipboard=both,foo:50' '-clipboard' shall return

          nx/nx,foo:50

         while calling x2gooptionsstring '--' 'nx/nx,clipboard=both,foo:50' '-clipboard=server' shall return

          nx/nx,clipboard=both,foo:50

         Calling "x2gooptionsstring '--' 'nx/nx,clipboard=both,foo:50' 'bar'" shall return

          nx/nx,clipboard=both,foo,bar:50

         and calling x2gooptionsstring '--' 'nx/nx,clipboard=both,foo:50' '+-bar' 'foo=gulp' '-clipboard=client'
         shall return

          nx/nx,clipboard=both,foo=gulp,-bar:50

       For an options string such as

        nx/nx,clipboard=both,foo=bar,bar=baz,foo=oof:50

         you  can  get a compacted version by cheating a bit and providing a transformation which will certainly
         be a no-operation using x2gooptionsstring '-c' '--' 'nx/nx,clipboard=both,foo=bar,bar=baz,,foo=oof,:50'
         '-', which shall return

          nx/nx,clipboard=both,foo=oof,bar=baz:50

   EXTRACTIONS
       For an options string such as

        nx/nx,clipboard=both,foo=bar,-=-,,bar=baz,foo=oof:50

         Calling x2gooptionsstring '-e' '--' 'nx/nx,clipboard=both,foo=bar,-=-,bar=baz,foo=oof,:50' 'foo'  shall
         return

          Zm9vPW9vZg==

         while  calling x2gooptionsstring '-e' '--' 'nx/nx,clipboard=both,foo=bar,-=-,bar=baz,foo=oof,:50' 'bar'
         '' 'clipboard=none' '-' shall return

          YmFyPWJheg==|||LT0t

AUTHOR

       This manual has been written by Mihai Moldovan  <ionic@ionic.de>  <mailto:ionic@ionic.de>  for  the  X2Go
       project (<https://www.x2go.org>).

Version 4.1.0.6                                    2024-04-22                               X2GOOPTIONSSTRING(1)