def main():
<EOL>features = os.environ.get('<STR_LIT>', '<STR_LIT>').split()<EOL>inline_features = os.environ.get('<STR_LIT>', '<STR_LIT>').split()<EOL>if inline_features:<EOL><INDENT>features += inline_features<EOL><DEDENT>else:<EOL><INDENT>feature_file = os.environ.get('<STR_LIT>', '<STR_LIT>')<EOL>if feature_file:<EOL><INDENT>features += get_features_from_equation_file(feature_file)<EOL><DEDENT>else:<EOL><INDENT>if not features:<EOL><INDENT>raise EnvironmentIncomplete(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>)<EOL><DEDENT><DEDENT><DEDENT>run(sys.argv, features=features)<EOL>
Entry point when used via command line.

Features are given using the environment variable ``PRODUCT_EQUATION``.
If it is not set, ``PRODUCT_EQUATION_FILENAME`` is tried: if it points
to an existing equation file that selection is used.

(if ``APE_PREPEND_FEATURES`` is given, those features are prepended)

If the list of features is empty, ``ape.EnvironmentIncomplete`` is raised.