# Gengo ## Installing the binary ```shell cargo install gengo-bin ``` ## Usage [API documentation][docs-rs] This tool has multiple file sources. Each file source can have unique usage to take advantage of its strengths and work around its weaknesses. ### Directory File Source This is a very generic file source that tries not to make many assumptions about your environment and workspace. #### Ignoring Files You can utilize a `.gitignore` file and/or an `.ignore` file to prevent files from being scanned. See the [`ignore`][ignore-crate] for more details. ### Git File Source The git file source is highly opinionated -- it tries to act like a git utility, and uses git tools. Its goal is to behave similarly to [linguist]. #### Overrides Like [linguist][linguist], you can override behavior using a `.gitattributes` file. Basically, just replace `linguist-FOO` with `gengo-FOO`. *Unlike* linguist, `gengo-detectable` will *always* make a file be included in statistics (linguist will still exclude them if they're generated or vendored). ```gitattributes # .gitattributes # boolean attributes: # These can be *negated* by prefixing with `-` (`-gengo-documentation`). # Mark a file as documentation *.html gengo-documentation # Mark a file as generated my-built-files/* gengo-generated # Mark a file as vendored deps/* gengo-vendored # string attributes: # Override the detected language for a file # Use the Language enum's variant name (see docs.rs for more details) templates/*.js gengo-language=PlainText ``` You will need to commit your `.gitattributes` file for it to take effect. [docs-rs]: https://docs.rs/gengo [ignore-crate]: https://docs.rs/ignore [linguist]: https://github.com/github-linguist/linguist