{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/bashly-settings-bashly-settings-yml/latest.json",
  "title": "settings",
  "description": "Settings of the current application\n<https://bashly.dev/usage/settings/#settings>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/DannyBen/bashly/master/schemas/settings.json",
    "sourceSha256": "30c9bfe8fa2913a8a35c0e334bdeb5fe4d68929c36fd41ce10a85398a3dfb8ba",
    "fileMatch": [
      "bashly-settings.yml",
      "bashly-settings.yaml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "source_dir": {
      "title": "source dir",
      "description": "The path containing the bashly source files\n<https://bashly.dev/usage/settings/#source_dir>",
      "type": "string",
      "minLength": 1,
      "default": "src"
    },
    "config_path": {
      "title": "config path",
      "description": "The path to bashly.yml\n<https://bashly.dev/usage/settings/#config_path>",
      "type": "string",
      "minLength": 1,
      "default": "%{source_dir}/bashly.yml"
    },
    "target_dir": {
      "title": "target dir",
      "description": "The path to use for creating the bash script\n<https://bashly.dev/usage/settings/#target_dir>",
      "type": "string",
      "minLength": 1,
      "default": "."
    },
    "lib_dir": {
      "title": "lib dir",
      "description": "The path to use for common library files, relative to source_dir\n<https://bashly.dev/usage/settings/#lib_dir>",
      "type": "string",
      "minLength": 1,
      "default": "lib"
    },
    "extra_lib_dirs": {
      "title": "extra lib dirs",
      "description": "One or more paths to use for common library files, relative to the working directory.\nMay be provided as an array or a comma delimited string.\n<https://bashly.dev/usage/settings/#extra_lib_dirs>",
      "oneOf": [
        {
          "type": "null"
        },
        {
          "type": "string",
          "minLength": 1,
          "examples": [
            "common, org_lib",
            "lib"
          ]
        },
        {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "examples": [
            [
              "common",
              "org_lib"
            ]
          ]
        }
      ],
      "default": null
    },
    "commands_dir": {
      "title": "commands dir",
      "description": "The path to use for command files, relative to source_dir\n<https://bashly.dev/usage/settings/#commands_dir>",
      "oneOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "strict": {
      "title": "strict",
      "description": "Configure the bash options that will be added to the initialize function\n<https://bashly.dev/usage/settings/#strict>",
      "oneOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string",
          "examples": [
            "set -o pipefail"
          ]
        }
      ],
      "default": false
    },
    "tab_indent": {
      "title": "tab indent",
      "description": "Whether to use tabs or spaces in the generated script\n<https://bashly.dev/usage/settings/#tab_indent>",
      "type": "boolean",
      "default": false
    },
    "word_wrap": {
      "title": "word wrap",
      "description": "Configure the character width used to wrap help and example messages\n<https://bashly.dev/usage/settings/#word_wrap>",
      "type": "integer",
      "default": 80
    },
    "compact_short_flags": {
      "title": "compact short flags",
      "description": "Whether to expand -abc to -a -b -c in the input line\n<https://bashly.dev/usage/settings/#compact_short_flags>",
      "type": "boolean",
      "default": true
    },
    "conjoined_flag_args": {
      "title": "conjoined flag args",
      "description": "Whether to expand --flag=value to --flag value in the input line\n<https://bashly.dev/usage/settings/#conjoined_flag_args>",
      "type": "boolean",
      "default": true
    },
    "show_examples_on_error": {
      "title": "show examples on error",
      "description": "Whether to show command examples when the input line is missing required arguments\n<https://bashly.dev/usage/settings/#show_examples_on_error>",
      "type": "boolean",
      "default": true
    },
    "env": {
      "title": "env",
      "description": "Whether to include development related comments in the generated script\n<https://bashly.dev/usage/settings/#env>",
      "type": "string",
      "enum": [
        "development",
        "production"
      ],
      "default": "development"
    },
    "enable_header_comment": {
      "title": "enable_header_comment",
      "description": "Whether to include the header comment in the generated script\n<https://bashly.dev/usage/settings/#enable_header_comment>",
      "type": "string",
      "enum": [
        "development",
        "production",
        "always",
        "never"
      ],
      "default": "always"
    },
    "enable_bash3_bouncer": {
      "title": "enable_bash3_bouncer",
      "description": "Whether to include the code snippet that aborts when an old version of bash is detected in the generated script\n<https://bashly.dev/usage/settings/#enable_bash3_bouncer>",
      "type": "string",
      "enum": [
        "development",
        "production",
        "always",
        "never"
      ],
      "default": "always"
    },
    "enable_view_markers": {
      "title": "enable_view_markers",
      "description": "Whether to include view marker comments in the generated script\n<https://bashly.dev/usage/settings/#enable_view_markers>",
      "type": "string",
      "enum": [
        "development",
        "production",
        "always",
        "never"
      ],
      "default": "development"
    },
    "enable_inspect_args": {
      "title": "enable_inspect_args",
      "description": "Whether to include the inspect_args function in the generated script\n<https://bashly.dev/usage/settings/#enable_inspect_args>",
      "type": "string",
      "enum": [
        "development",
        "production",
        "always",
        "never"
      ],
      "default": "development"
    },
    "enable_deps_array": {
      "title": "enable_deps_array",
      "description": "Whether to include the code for the dependencies array in the generated script\n<https://bashly.dev/usage/settings/#enable_deps_array>",
      "type": "string",
      "enum": [
        "development",
        "production",
        "always",
        "never"
      ],
      "default": "always"
    },
    "enable_env_var_names_array": {
      "title": "enable_env_var_names_array",
      "description": "Whether to include the code for the env_var_names array in the generated script\n<https://bashly.dev/usage/settings/#enable_env_var_names_array>",
      "type": "string",
      "enum": [
        "development",
        "production",
        "always",
        "never"
      ],
      "default": "always"
    },
    "enable_sourcing": {
      "title": "enable_sourcing",
      "description": "Whether to wrap the script execution in a condition that checks if the script is sourced\n<https://bashly.dev/usage/settings/#enable_sourcing>",
      "type": "string",
      "enum": [
        "development",
        "production",
        "always",
        "never"
      ],
      "default": "development"
    },
    "formatter": {
      "title": "formatter",
      "description": "Choose how to post-process the generated script\n<https://bashly.dev/usage/settings/#formatter>",
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "internal",
            "external",
            "none"
          ]
        },
        {
          "type": "string",
          "minLength": 1
        }
      ],
      "default": "internal"
    },
    "partials_extension": {
      "title": "partials extension",
      "description": "The extension to use when reading/writing partial script snippets\n<https://bashly.dev/usage/settings/#partials_extension>",
      "type": "string",
      "minLength": 1,
      "default": "sh"
    },
    "private_reveal_key": {
      "title": "private reveal key",
      "description": "The name of the environment variable (case sensitive) that, if set, will reveal private commands, flags and environment variables\n<https://bashly.dev/usage/settings/#private_reveal_key>",
      "oneOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "argfile_var": {
      "title": "argfile var",
      "description": "The name of the environment variable that can override or disable command argfiles at runtime\n<https://bashly.dev/usage/settings/#argfile_var>",
      "type": "string",
      "minLength": 1,
      "default": "ARGFILE"
    },
    "watch_evented": {
      "title": "watch evented",
      "description": "Whether to use evented file system watch instead of the default polling\n<https://bashly.dev/usage/settings/#watch_evented>",
      "type": "boolean",
      "default": false
    },
    "watch_latency": {
      "title": "watch latency",
      "description": "The latency in seconds for the file system changes watcher\n<https://bashly.dev/usage/settings/#watch_latency>",
      "type": "number",
      "default": 1
    },
    "usage_colors": {
      "title": "usage colors",
      "description": "Enable and configure colorful output for --help\n<https://bashly.dev/usage/settings/#usage_colors>",
      "type": "object",
      "properties": {
        "caption": {
          "title": "caption",
          "description": "Color for captions\n<https://bashly.dev/usage/settings/#usage_colors>",
          "$ref": "#/$defs/color"
        },
        "command": {
          "title": "command",
          "description": "Color for commands\n<https://bashly.dev/usage/settings/#usage_colors>",
          "$ref": "#/$defs/color"
        },
        "arg": {
          "title": "arg",
          "description": "Color for positional arguments\n<https://bashly.dev/usage/settings/#usage_colors>",
          "$ref": "#/$defs/color"
        },
        "flag": {
          "title": "flag",
          "description": "Color for flags\n<https://bashly.dev/usage/settings/#usage_colors>",
          "$ref": "#/$defs/color"
        },
        "environment_variable": {
          "title": "environment variable",
          "description": "Color for env environment variables\n<https://bashly.dev/usage/settings/#usage_colors>",
          "$ref": "#/$defs/color"
        }
      },
      "additionalProperties": false
    },
    "var_aliases": {
      "title": "var_aliases",
      "description": "Declare alias names for bashly's public global arrays\n<https://bashly.dev/usage/settings/#var_aliases>",
      "type": "object",
      "properties": {
        "args": {
          "title": "args",
          "description": "Alias name for the args array\n<https://bashly.dev/usage/settings/#var_aliases>",
          "oneOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ]
        },
        "other_args": {
          "title": "other_args",
          "description": "Alias name for the other_args array (used when catch_all is enabled)\n<https://bashly.dev/usage/settings/#var_aliases>",
          "oneOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ]
        },
        "deps": {
          "title": "deps",
          "description": "Alias name for the deps array\n<https://bashly.dev/usage/settings/#var_aliases>",
          "oneOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ]
        },
        "env_var_names": {
          "title": "env_var_names",
          "description": "Alias name for the env_var_names array\n<https://bashly.dev/usage/settings/#var_aliases>",
          "oneOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "function_names": {
      "title": "function_names",
      "description": "Choose different names for some of the internal functions.\n<https://bashly.dev/usage/settings/#function_names>",
      "type": "object",
      "properties": {
        "run": {
          "title": "run",
          "description": "Name for the run() function\n<https://bashly.dev/usage/settings/#function_names>",
          "oneOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ]
        },
        "initialize": {
          "title": "initialize",
          "description": "Name for the initialize() function\n<https://bashly.dev/usage/settings/#function_names>",
          "oneOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    }
  },
  "$defs": {
    "color": {
      "oneOf": [
        {
          "type": "string",
          "examples": [
            "red",
            "green",
            "yellow",
            "blue",
            "magenta",
            "cyan",
            "bold",
            "underlined",
            "red_bold",
            "green_bold",
            "yellow_bold",
            "blue_bold",
            "magenta_bold",
            "cyan_bold",
            "red_underlined",
            "green_underlined",
            "yellow_underlined",
            "blue_underlined",
            "magenta_underlined",
            "cyan_underlined"
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": false
}
