&dhucpackage; &dhsection;

&dhpackage;

interface description language (IDL) for APIs

          &dhpackage;
          -h
          -v
          --clean-build
          -f FILTER_BY_ROUTE_ATTR
          -r ROUTE_WHITELIST_FILTER
          -a ATTRIBUTE
          -w WHITELIST_NAMESPACE_ROUTES
          -b BLACKLIST_NAMESPACE_ROUTES
          backend
          output
          spec

## DESCRIPTION

This manual page documents briefly the `&dhpackage;` command.

This manual page was written for the &debian; distribution because the original program does not have a manual page.

`&dhpackage;` is a code generator, used to translate your specification into objects and functions in the programming languages of your choice.

## OPTIONS

This program follows the usual &gnu; command line syntax, with long options starting with two dashes (`-'). A summary of options is included below.

`-h` `--help`

- Show help message and exit.

`-v` `--verbose`

- Print debugging statements.

`--clean-build`

- Remove build_path before source files are compiled into them.

`-f` `--filter-by-route-attr`

- Removes routes that do not match the expression. The expression must specify a route attribute on the left-hand side and a value on the right-hand side. Use quotes for strings and bytes. The only supported operators are "=" and "!=". For example, if "hide" is a route attribute, we can use this filter: "hide!=true". You can combine multiple expressions with "and"/"or" and use parentheses to enforce precedence.

`-r` `--route-whitelist-filter`

- Restrict datatype generation to only the routes specified in the whitelist and their dependencies. Input should be a file containing a JSON dict with the following form: {"route_whitelist": {}, "datatype_whitelist": {}} where each object maps namespaces to lists of routes or datatypes to whitelist.

`-a` `--attribute`

- Route attributes that the backend will have access to and presumably expose in generated code. Use ":all" to select all attributes defined in stone_cfg.Route. Note that you can filter (-f) by attributes that are not listed here.

`-w` `--whitelist-namespace-routes`

- If set, backends will only see the specified namespaces as having routes.

`-b` `--blacklist-namespace-routes`

- If set, backends will not see any routes for the specified namespaces.

## ARGUMENTS

backend

- Either the name of a built-in backend or the path to a backend module. Paths to backend modules must end with a stoneg.py extension. The following backends are built-in: obj_c_client, obj_c_types, obj_c_tests, js_client, js_types, tsd_client, tsd_types, python_types, python_type_stubs, python_client, swift_types, swift_client.

output

- The folder to save generated files to.

spec

- Path to API specifications. Each must have a .stone extension. If omitted or set to "-", the spec is read from stdin. Multiple namespaces can be provided over stdin by concatenating multiple specs together.

## AUTHOR

This manual page was written by &dhusername; &dhemail; for the &debian; system (and may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the &gnu; General Public License, Version 2 any later version published by the Free Software Foundation.

On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.