# This is a configuration file for the bacon tool
#
# Bacon repository: https://github.com/Canop/bacon
# Complete help on configuration: https://dystroy.org/bacon/config/
# You can also check bacon's own bacon.toml file
#  as an example: https://github.com/Canop/bacon/blob/main/bacon.toml

default_job = "check"

[jobs.check]
command = ["cargo", "check", "--color", "always"]
need_stdout = false

[jobs.check-all]
command = ["cargo", "check", "--all-targets", "--color", "always"]
need_stdout = false

# Run clippy on the default target
[jobs.clippy]
command = ["cargo", "clippy", "--color", "always"]
need_stdout = false

# Run clippy on all targets
# To disable some lints, you may change the job this way:
#    [jobs.clippy-all]
#    command = [
#        "cargo", "clippy",
#        "--all-targets",
#        "--color", "always",
#    	 "--",
#    	 "-A", "clippy::bool_to_int_with_if",
#    	 "-A", "clippy::collapsible_if",
#    	 "-A", "clippy::derive_partial_eq_without_eq",
#    ]
# need_stdout = false
[jobs.clippy-all]
command = ["cargo", "clippy", "--all-targets", "--color", "always"]
need_stdout = false

# You can run your application and have the result displayed in bacon,
# *if* it makes sense for this crate.
# Don't forget the `--color always` part or the errors won't be
# properly parsed.
# If your program never stops (eg a server), you may set `background`
# to false to have the cargo run output immediately displayed instead
# of waiting for program's end.
[jobs.run]
command = [
    "cargo",
    "run",
    "--color",
    "always",
    # put launch parameters for your program behind a `--` separator
]
need_stdout = true
allow_warnings = true
background = true

# You may define here keybindings that would be specific to
# a project, for example a shortcut to launch a specific job.
# Shortcuts to internal functions (scrolling, toggling, etc.)
# should go in your personal global prefs.toml file instead.
[keybindings]
# alt-m = "job:my-job"
c = "job:clippy-all"            # comment this to have 'c' run clippy on only the default target
1 = "job:test-spec-no-watch"
2 = "job:test-staging-no-watch"
3 = "job:test-all-no-watch"
4 = "job:test-spec"
5 = "job:test-staging"
6 = "job:test-all"

[jobs.test-spec]
command = [
    "cargo",
    "test",
    "-p",
    "ezno-checker-specification",
    "--color",
    "always",
    "--",
    "--color",
    "always",
]
need_stdout = true
watch = ["checker", "parser"]

[jobs.test-staging]
command = [
    "cargo",
    "test",
    "-p",
    "ezno-checker-specification",
    "-F",
    "staging",
    "--color",
    "always",
    "--",
    "--color",
    "always",
]
need_stdout = true
watch = ["checker", "parser"]

[jobs.test-all]
command = [
    "cargo",
    "test",
    "-p",
    "ezno-checker-specification",
    "-F",
    "all",
    "--color",
    "always",
    "--",
    "--color",
    "always",
]
need_stdout = true
watch = ["checker", "parser"]

[jobs.test-spec-no-watch]
command = [
    "cargo",
    "test",
    "-p",
    "ezno-checker-specification",
    "--color",
    "always",
    "--",
    "--color",
    "always",
]
need_stdout = true
default_watch = false

[jobs.test-staging-no-watch]
command = [
    "cargo",
    "test",
    "-p",
    "ezno-checker-specification",
    "-F",
    "staging",
    "--color",
    "always",
    "--",
    "--color",
    "always",
]
need_stdout = true
default_watch = false

[jobs.test-all-no-watch]
command = [
    "cargo",
    "test",
    "-p",
    "ezno-checker-specification",
    "-F",
    "all",
    "--color",
    "always",
    "--",
    "--color",
    "always",
]
need_stdout = true
default_watch = false
