Provided by: env-assert_0.014-1_all bug

NAME

       envassert - Ensure that the environment variables match what you need, or abort.

VERSION

       version 0.014

SYNOPSIS

       envassert [options]

       Options:
           --help
           --man
           --version
           --break-at-error
           --env-description

DESCRIPTION

       envassert checks that your runtime environment, as defined with environment variables, matches with what
       you want.

       You can define your required environment in a file.  Default file is .envassert but you can use any file.

       It is advantageous to use envassert for example when running a container. If you check your environment
       for missing or wrongly defined environment variables at the beginning of the container run, your
       container will fail sooner instead of in a later point in execution when the variables are needed.

   Errors
       There are three kinds of errors:

       ENV_ASSERT_MISSING_FROM_ENVIRONMENT
               "Variable <var_name> is missing from environment"

       ENV_ASSERT_INVALID_CONTENT_IN_VARIABLE
               "Variable <var_name> has invalid content"

       ENV_ASSERT_MISSING_FROM_DEFINITION
               "Variable <var_name> is missing from description"

               This error will only be reported if you have set the special option exact. See below.

   Environment Description Language
       Environment is described in file .envdesc.  Environment description file is a Unix shell compatible file,
       similar to a .env file.

       .envdesc Format

       In .envdesc file there is only environment variables, comments or empty rows.  Example:

           # Required env
           ## envassert (opts: exact=1)
           FILENAME=^[[:word:]]{1,}$

       Env  var  name  is  followed  by  a regular expression. The regexp is an extended Perl regular expression
       without quotation marks.  One env var and its descriptive regexp use one row.

       A comment begins at the beginning of the row and uses the whole row.  It start with '#' character.

       Two comment characters and the word envassert at the beginning of the row mean this is an envassert  meta
       command.  You can specify different environment related options with these commands.

       Supported options:

       exact   The option exact means that all allowed env variables are described in this file. Any unknown env
               var causes an error when verifying.

   CLI interface without dependencies
       The  envassert command is also available as self contained executable.  You can download it and run it as
       it is without additional installation of CPAN packages.  Of course, you still need Perl, but  Perl  comes
       with any normal Linux installation.

       This can be convenient if you want to, for instance, include envassert in a docker container build.

           curl -LSs -o envassert https://raw.githubusercontent.com/mikkoi/env-assert/main/envassert.self-contained
           chmod +x ./envassert

NAME

       envassert - Ensure that the environment variables match what you need, or abort.

OPTIONS

       --help  Print a brief help message and exits.

       --man   Prints the manual page and exits.

       --version
               Prints the version and exits.

       -b, --break-at-first-error
               Break checking at the first error and report back.  Default: false

       -e, --env-description
               Path to file which has the environment description.  Default: .envdesc

       -x, --exact
               Fail check if environment contains variables not defined in environment description.  This option
               will override the equivalent option in .envdesc file.  Default: false

EXAMPLES

           $ envassert
           Environment Assert: ERRORS:
               variables:
                   FIRST_VAR: Variable FIRST_VAR is missing from environment
                   FOURTH_VAR: Variable FOURTH_VAR is missing from environment

DEPENDENCIES

       No external dependencies outside Perl's standard distribution.

SEE ALSO

       Env::Dot  is  a  "sister"  to Env::Assert.  Read environment variables from a .env file directly into you
       program.  There is also script envdot which can turn .env file's content into environment  variables  for
       different shells.

AUTHOR

       Mikko Koivunalho <mikkoi@cpan.org>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2023 by Mikko Koivunalho.

       This  is  free  software;  you  can  redistribute  it and/or modify it under the same terms as the Perl 5
       programming language system itself.

perl v5.40.1                                       2025-12-13                                      ENVASSERT(1p)