Skip to content

tamada/btmeister

Repository files navigation

btmeister

build Coverage Status Rust Report Card

Version License

Docker Homebrew

Detecting the build tools in use.

btmeister_logo

🗣️ Description

This tool aims to detect the build tools in use for the project for surveying the share of the build tools. The build tools build a project along with the rules defined in the build files. The default names of the build files are fixed for each build tool. This tool finds the build files from the specified directories, and identifies the build tools in use.

🏃 Usage

Detecting build tools/task runners in use of the projects

Usage: btmeister [OPTIONS] [PROJECTs]...

Arguments:
  [PROJECTs]...  The target project paths. If "-" was given, reads from stdin.
                 Also, the first character was "@", read from the file eliminating "@".
                 This parameters accept directories and archive files.
                 Supported archive files: tar, tar.bz2, tar.gz, tar.xz, tar.zstd, and zip.

Options:
  -D, --definition <DEFS_JSON>     Specify the definition of the build tools.
      --append-defs <DEFS_JSON>    Specify the additional definitions of the build tools.
  -i, --ignore-type <IGNORE_TYPE>  Specify the ignore type. [default: default] [possible values: default, hidden, ignore, git-ignore, git-global, git-exclude]
  -e, --excludes <EXCLUDEs>        Specify the filters of excluding files or directories.
  -L, --list-defs                  Print the build tools' definition list
  -f, --format <FORMAT>            Specify the output format [default: default] [possible values: csv, default, json, markdown, xml, yaml]
  -l, --level <LEVEL>              Specify the log level. [default: warn] [possible values: error, warn, info, debug, trace]
  -h, --help                       Print help (see more with '--help')
  -V, --version                    Print version

Sample Output

$ btmeister ~/github.com/tamada/gibo-wrapper
/home/tamada/github.com/tamada/gibo-wrapper
    Cargo.toml: Cargo
    Dockerfile: Docker
    build.rs: Cargo
    .github/workflows/publish.yaml: GitHub Actions
    .github/workflows/docker.yaml: GitHub Actions
    .github/workflows/versionup.yaml: GitHub Actions
    .github/workflows/build.yaml: GitHub Actions
$ btmeister --format json ~/github.com/tamada/gibo-wrapper | jq .
[
  {
    "base": "/home/tamada/github.com/tamada/gibo-wrapper",
    "build-tools": [
      {
        "path": "Cargo.toml",
        "tool-name": "Cargo"
      },
      {
        "path": "Dockerfile",
        "tool-name": "Docker"
      },
      {
        "path": "build.rs",
        "tool-name": "Cargo"
      },
      {
        "path": ".github/workflows/publish.yaml",
        "tool-name": "GitHub Actions"
      },
      {
        "path": ".github/workflows/docker.yaml",
        "tool-name": "GitHub Actions"
      },
      {
        "path": ".github/workflows/versionup.yaml",
        "tool-name": "GitHub Actions"
      },
      {
        "path": ".github/workflows/build.yaml",
        "tool-name": "GitHub Actions"
      }
    ]
  }
]

🐳 Docker

Docker

docker run --rm -it -v $PWD:/app ghcr.io/tamada/btmeister:latest .
  • Container OS
    • Working directory: /app
    • entry point: /opt/btmeister/btmeister
    • user: nonroot

🛠️ Related Tools

  • Licensee
    • License detector for the projects.
  • linguist
    • Programming languages detector for the projects.