[env]
SCREENSHOT_TERM = "xterm -ti vt340 -fa DejaVu -fs 7 -bg black -fg white"
SCREENSHOT_TERM_NAME = "xterm"
BACKEND = "crossterm"
[env.termion]
BACKEND = "termion"
[env.termwiz]
BACKEND = "termwiz"
[tasks.default]
alias = "ci"
[tasks.ci-all]
script = '''
cargo make ci
cargo make --profile termion ci
cargo make --profile termwiz ci
'''
[tasks.ci-windows]
script = '''
cargo make ci
cargo make --profile termwiz ci
'''
[tasks.ci]
dependencies = [
"fmt",
"clippy",
"check",
"test",
"readme",
"build",
]
[tasks.fmt]
command = "cargo"
args = ["fmt", "--all", "--", "--check"]
[tasks.clippy]
command = "cargo"
args = ["clippy", "--no-deps", "--tests", "--all-features", "--", "-D", "warnings"]
[tasks.check]
command = "cargo"
args = ["check", "--all-features"]
[tasks.test]
command = "cargo"
args = ["test", "--features", "${BACKEND}"]
[tasks.readme]
command = "cargo"
args = ["readme", "-o", "README.md"]
[tasks.build]
command = "cargo"
args = ["build", "--features", "${BACKEND}"]
[tasks.demo]
command = "cargo"
args = [
"run",
"--example",
"demo",
"--features", "serde,crossterm",
]
[tasks.screenshot-build]
command = "cargo"
args = [
"build",
"--example",
"screenshot",
"--features", "crossterm",
]
[tasks.screenshot-xvfb]
dependencies = [
"screenshot-build",
]
script = '''
echo ${SCREENSHOT_TERM} ${PWD}/target/debug/examples/screenshot
xvfb-run -s "-screen 0 640x480x24" ${SCREENSHOT_TERM} ${PWD}/target/debug/examples/screenshot
'''
[tasks.screenshot-diff]
command = "dify"
args = [
"-t", "0.15",
"assets/screenshot_${SCREENSHOT_TERM_NAME}.png",
"target/screenshot_${SCREENSHOT_TERM_NAME}.png",
"-o", "target/diff_${SCREENSHOT_TERM_NAME}.png",
]
[tasks.screenshot-ci]
dependencies = [
"screenshot-xvfb",
"screenshot-diff",
]
[tasks.screenshot-update]
script = '''
cp target/screenshot_${SCREENSHOT_TERM_NAME}.png assets/screenshot_${SCREENSHOT_TERM_NAME}.png
'''
[tasks.screenshot-record]
dependencies = [
"demo-build",
]
command = "menyoki"
args = [
"--quiet",
"record",
"./target/debug/examples/demo",
"gif",
"save",
"target/recording.gif",
]
[tasks.demo-build]
command = "cargo"
args = [
"build",
"--example",
"demo",
"--features", "crossterm",
]
[tasks.eyeball]
script = '''
cargo make eyeball-xterm &
cargo make eyeball-foot &
cargo make eyeball-kitty &
cargo make eyeball-wezterm &
'''
[tasks.eyeball-xterm]
dependencies = [ "demo-build" ]
command = "xterm"
args = [ "-ti", "vt340", "./target/debug/examples/demo" ]
[tasks.eyeball-foot]
dependencies = [ "demo-build" ]
command = "foot"
args = [ "./target/debug/examples/demo" ]
[tasks.eyeball-wezterm]
dependencies = [ "demo-build" ]
script = '''
PWD=$(pwd)
wezterm start --cwd $PWD ./target/debug/examples/demo
'''
[tasks.eyeball-kitty]
dependencies = [ "demo-build" ]
command = "kitty"
args = [ "./target/debug/examples/demo" ]