{
  "id": "fpm",
  "name": "fpm",
  "homepage": "https://fpm.readthedocs.io",
  "description": "The goal of fpm is to make it easy and quick to build packages such as rpms, debs, OSX packages, etc.",
  "executables": [
    "fpm"
  ],
  "dotfiles": {
    "paths": [
      "~/.fpm"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "Build a package",
    "description": "Build a package (deb, rpm, tar, ...) from a directory, gem, python package or other input with fpm. Per-format options and maintainer scripts are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "help",
        "kind": "help",
        "revision": "fpm 1.18.0 (fpm --help)",
        "evidence": "    [ARGS] ...   Inputs to the source package type. For the 'dir' type, this is the files and directories you want to include in the package.\n    -t, --output-type OUTPUT_TYPE   the type of package you want to create (deb, rpm, solaris, etc)\n    -s, --input-type INPUT_TYPE     the package type to use as input (gem, rpm, python, etc)\n    -C, --chdir CHDIR   Change directory to here before searching for files\n    --prefix PREFIX   A path to prefix files with when building the target package.\n    -p, --package OUTPUT   The package file path to output.\n    -f, --force   Force output even if it will overwrite an existing file (default: false)\n    -n, --name NAME   The name to give to the package\n    -v, --version VERSION   The version to give to the package (default: 1.0)\n    --iteration ITERATION   The iteration to give to the package.\n    --license LICENSE   (optional) license name for this package\n    -d, --depends DEPENDENCY   A dependency. This flag can be specified multiple times.\n    -a, --architecture ARCHITECTURE   The architecture name. Usually matches 'uname -m'.\n    -m, --maintainer MAINTAINER   The maintainer of this package.\n    -x, --exclude EXCLUDE_PATTERN   Exclude paths matching pattern (shell wildcard globs valid here).\n    --description DESCRIPTION   Add a description for this package.\n    --url URI   Add a url for this package.\n"
      }
    ],
    "field": [
      {
        "id": "inputs",
        "label": "Inputs",
        "description": "For the dir type: files and directories to include. For gem, python and similar types: the package names to fetch.",
        "type": "string",
        "position": 0,
        "multiple": true,
        "sources": [
          "help"
        ]
      },
      {
        "id": "input_type",
        "label": "Input type",
        "type": "string",
        "option": [
          "-s",
          "--input-type"
        ],
        "suggestions": [
          {
            "value": "dir",
            "label": "Directory"
          },
          {
            "value": "gem",
            "label": "Ruby gem"
          },
          {
            "value": "python",
            "label": "Python"
          },
          {
            "value": "npm",
            "label": "npm"
          },
          {
            "value": "rpm",
            "label": "RPM"
          },
          {
            "value": "deb",
            "label": "Deb"
          }
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "output_type",
        "label": "Output type",
        "type": "string",
        "option": [
          "-t",
          "--output-type"
        ],
        "suggestions": [
          {
            "value": "deb",
            "label": "Deb"
          },
          {
            "value": "rpm",
            "label": "RPM"
          },
          {
            "value": "tar",
            "label": "Tarball"
          },
          {
            "value": "zip",
            "label": "Zip"
          },
          {
            "value": "osxpkg",
            "label": "macOS pkg"
          },
          {
            "value": "apk",
            "label": "Alpine apk"
          }
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "name",
        "label": "Package name",
        "type": "string",
        "option": [
          "-n",
          "--name"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "version",
        "label": "Version",
        "type": "string",
        "option": [
          "-v",
          "--version"
        ],
        "observed_default": "1.0",
        "sources": [
          "help"
        ]
      },
      {
        "id": "iteration",
        "label": "Iteration / release",
        "type": "string",
        "option": [
          "--iteration"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "arch",
        "label": "Architecture",
        "type": "string",
        "option": [
          "-a",
          "--architecture"
        ],
        "suggestions": [
          {
            "value": "native",
            "label": "Native"
          },
          {
            "value": "all",
            "label": "All"
          }
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "depends",
        "label": "Dependencies",
        "type": "string",
        "option": [
          "-d",
          "--depends"
        ],
        "multiple": true,
        "sources": [
          "help"
        ]
      },
      {
        "id": "chdir",
        "label": "Change directory first",
        "type": "path",
        "option": [
          "-C",
          "--chdir"
        ],
        "path": {
          "kind": "directory",
          "role": "input"
        },
        "sources": [
          "help"
        ]
      },
      {
        "id": "prefix",
        "label": "Install prefix",
        "type": "string",
        "option": [
          "--prefix"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "package",
        "label": "Output package path",
        "type": "path",
        "option": [
          "-p",
          "--package"
        ],
        "path": {
          "kind": "any",
          "role": "output",
          "must_exist": false
        },
        "sources": [
          "help"
        ]
      },
      {
        "id": "force",
        "label": "Overwrite existing package",
        "type": "boolean",
        "option": [
          "-f",
          "--force"
        ],
        "effect": "overwrite",
        "sources": [
          "help"
        ]
      },
      {
        "id": "maintainer",
        "label": "Maintainer",
        "type": "string",
        "option": [
          "-m",
          "--maintainer"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "license",
        "label": "License",
        "type": "string",
        "option": [
          "--license"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "description",
        "label": "Description",
        "type": "string",
        "option": [
          "--description"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "url",
        "label": "Project URL",
        "type": "url",
        "option": [
          "--url"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "exclude",
        "label": "Exclude patterns",
        "type": "string",
        "option": [
          "-x",
          "--exclude"
        ],
        "multiple": true,
        "sources": [
          "help"
        ]
      }
    ],
    "task": [
      {
        "id": "dir_to_deb",
        "label": "Directory to .deb",
        "fields": [
          "inputs",
          "name",
          "version",
          "output_type",
          "input_type"
        ],
        "required": [
          "inputs",
          "name",
          "version"
        ],
        "set": {
          "input_type": [
            "dir"
          ],
          "output_type": [
            "deb"
          ]
        }
      },
      {
        "id": "dir_to_rpm",
        "label": "Directory to .rpm",
        "fields": [
          "inputs",
          "name",
          "version",
          "output_type",
          "input_type"
        ],
        "required": [
          "inputs",
          "name",
          "version"
        ],
        "set": {
          "input_type": [
            "dir"
          ],
          "output_type": [
            "rpm"
          ]
        }
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "input_type",
          "output_type",
          "name",
          "version",
          "inputs",
          "package",
          "force"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "iteration",
          "arch",
          "depends",
          "chdir",
          "prefix",
          "maintainer",
          "license",
          "description",
          "url",
          "exclude"
        ]
      }
    ]
  }
}
