graste / environaut

Define, configure and protect your environment.
http://graste.github.com/environaut/
MIT License
14 stars 1 forks source link

Environaut

Please have a look at the available releases.

Purpose

Environaut should enable and help developers to define the environment of an application and check if all defined constraints are met. This includes assertions and requirements of the application environment as well as some configuration that may be necessary to make an application run. See the docs/ folder or the wiki for more information.

When you plan to use Environaut to create settings files for your application please skip to the Requirements and installation section.

Quickstart for curious users

  1. Download the environaut.phar file of the release you prefer
  2. Make it executable via chmod u+x environaut.phar
  3. Run ./environaut.phar check
  4. Notice the error message for a missing configuration file
  5. Create a minimal config file (e.g. as xml or json) next to the environaut.phar file.
  6. Run ./environaut.phar check again (with --config ... if the file is not named environaut.(xml|json|php))
  7. Notice the output and created settings and cache file that is used when you run Environaut another time.

Short introduction for interested developers

Environaut parses a configuration file that contains defined environment checks. After that, each check is processed and the results of each check are compiled into a report. Each check can emit messages and settings. The messages will be printed to the shell and the settings can be exported in specified formats.

For a verbose example configuration file do this:

  1. Clone this repository and change into that directory
  2. Run make install-dependencies-dev
  3. Run bin/environaut check

Notice the checks and questions and that there's an environaut-config.xml afterwards in your working directory. Change the sample environaut.xml to use environaut-config.json instead of the XML variant as the settings export formatter and re-run the checks to get your settings as JSON.

Requirements and installation

There are multiple ways to use and run environaut:

PHAR

The easiest way to use environaut is to download the environaut.phar of the latest stable release, make it executable and put a configuration file next to the php archive and then run ./environaut.phar check

Composer CLI

Install Environaut via Composer:

  1. Install Composer (if it's not already installed or available via PATH environment): curl -sS https://getcomposer.org/installer | php.
  2. Install Environaut: ./composer.phar require graste/environaut [optional version]
  3. Create a Environaut configuration file (see environaut.xml or examples)
  4. Run it: ./vendor/bin/environaut.phar check

Composer project vendor dependency

Another way to install Environaut is via composer as a vendor dependency of your project. Create or update a composer.json file and run the php composer.phar install command to get Environaut:

{
    "require": {
        "graste/environaut": "~0.5"
    }
}

Alternatively, you can download the environaut.zip file and extract it. The bin/environaut.phar file is a standalone and self-executable binary.

$ environaut.phar --help

When you got environaut.phar by cloning this repository it should already be executable. Otherwise chmod u+x environaut.phar should be sufficient to make it work. It is advisable to have a php executable available via the PATH environment variable as the phar uses a #!/usr/bin/env php shebang. Use something like alias php="/usr/local/bin/php53" if your executable is not in the PATH. To get the Makefile working you can try a simple export PHP_PATH = "/usr/local/bin/php53" as that will be used instead of the default php for make.

Usage examples

You may combine multiple commandline options:

environaut.phar help check
environaut.phar check --verbose --profile
environaut.phar check --config path/to/environaut.json
environaut.phar check --autoload-dir path/to/custom/files/src
environaut.phar check --no-cache

The check commandline options are:

Other available and useful options are:

For the help command the following works:

Documentation

Checks can be configured via configuration files and settings may afterwards be exported via different formatters into different formats.

Supported (input) configuration file formats:

Supported (output) settings file formats:

The input and output file formats may be completely customized by replacing the default classes with custom implementations.

Community

None, but you may join the freenode IRC #honeybee channel anytime. :-)

Please contribute by forking and sending a pull request. More information can be found in the CONTRIBUTING.md file.

Contributors

See AUTHORS.md for a list of contributors.

Changelog

See CHANGELOG.md for more information about changes.

License

MIT license – see linked license for details.