Skip to content

tamadalab/beacher

Repository files navigation

beacher

Version License Docker

Detecting the build tools in use.

beacher_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

Usage: java -jar beacher-1.1.0.jar [-hLV] [-@=INPUT] [--append-defs=DEFS_JSON] [-d=DEFS_JSON]
               [-f=FORMAT] [PROJECTs...]
A tool for detecting build tools of the projects
      [PROJECTs...]     The target project directories for beacher.
  -@=INPUT              Specify the file contains project path list. If INPUT
                          is dash ('-'), read from STDIN.
      --append-defs=DEFS_JSON
                        Specify the additional definitions of the build tools.
  -d, --definition=DEFS_JSON
                        Specify the definition of the build tools.
  -f, --format=FORMAT   Specify the output format [default: Default] [possible
                          values: Default, Json, Xml, Yaml]
  -h, --help            Show this help message and exit.
  -L, --list-defs       Print the build tools' definition list
      --no-ignore       Do not respect ignore files (.ignore, .gitignore, etc.)
  -V, --version         Print version information and exit.

Sample Output

$ java -jar beacher-1.1.0.jar . ../../AP/Java/HelloWorld/
.
  ./app/build.gradle: Gradle
../../AP/Java/HelloWorld
  ../../AP/Java/HelloWorld/build.xml: Apache Ant
  ../../AP/Java/HelloWorld/Makefile: Make
$ java -jar beacher-1.1.0.jar --format Json . ../../AP/Java/HelloWorld/ | jq .
{
  "base": ".",
  "build-tools": [
    {
      "file-path": "./app/build.gradle",
      "tool-name": "Gradle"
    }
  ]
}
{
  "base": "../../AP/Java/HelloWorld",
  "build-tools": [
    {
      "file-path": "../../AP/Java/HelloWorld/build.xml",
      "tool-name": "Apache Ant"
    },
    {
      "file-path": "../../AP/Java/HelloWorld/Makefile",
      "tool-name": "Make"
    }
  ]
}

🐳 Docker

docker run --rm -it -v $PWD:/home/beacher ghcr.io/tamadalab/beacher:latest .
  • Container OS
    • Working directory: /home/beacher
    • user: beacher

🛠️ Related Tools

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