mirror of
https://github.com/uutils/coreutils.git
synced 2025-12-23 08:47:37 +00:00
commit
796478bfb1
1 changed files with 0 additions and 386 deletions
386
Makefile.toml
386
Makefile.toml
|
|
@ -1,386 +0,0 @@
|
|||
# spell-checker:ignore (cargo-make) duckscript
|
||||
|
||||
[config]
|
||||
min_version = "0.26.2"
|
||||
default_to_workspace = false
|
||||
init_task = "_init_task"
|
||||
|
||||
[config.modify_core_tasks]
|
||||
namespace = "core"
|
||||
|
||||
### initialization
|
||||
|
||||
### * note: the task executed from 'init_task' ignores dependencies; workaround is to run a secondary task via 'run_task'
|
||||
|
||||
[tasks._init_task]
|
||||
# dependencies are unavailable
|
||||
# * delegate (via 'run_task') to "real" initialization task ('_init') with full capabilities
|
||||
private = true
|
||||
run_task = "_init"
|
||||
|
||||
[tasks._init]
|
||||
private = true
|
||||
dependencies = ["_init-vars"]
|
||||
|
||||
[tasks._init-vars]
|
||||
private = true
|
||||
script_runner = "@duckscript"
|
||||
script = ['''
|
||||
# reset build/test flags
|
||||
set_env CARGO_MAKE_CARGO_BUILD_TEST_FLAGS ""
|
||||
# determine features
|
||||
env_features = get_env CARGO_FEATURES
|
||||
if is_empty "${env_features}"
|
||||
env_features = get_env FEATURES
|
||||
end_if
|
||||
if is_empty "${env_features}"
|
||||
if eq "${CARGO_MAKE_RUST_TARGET_OS}" "macos"
|
||||
features = set "unix"
|
||||
else
|
||||
if eq "${CARGO_MAKE_RUST_TARGET_OS}" "linux"
|
||||
features = set "unix"
|
||||
else
|
||||
if eq "${CARGO_MAKE_RUST_TARGET_OS}" "windows"
|
||||
features = set "windows"
|
||||
end_if
|
||||
end_if
|
||||
end_if
|
||||
end_if
|
||||
if is_empty "${features}"
|
||||
features = set "${env_features}"
|
||||
else
|
||||
if not is_empty "${env_features}"
|
||||
features = set "${features},${env_features}"
|
||||
end_if
|
||||
end_if
|
||||
# set build flags from features
|
||||
if not is_empty "${features}"
|
||||
set_env CARGO_MAKE_VAR_BUILD_TEST_FEATURES "${features}"
|
||||
set_env CARGO_MAKE_CARGO_BUILD_TEST_FLAGS "--features ${features}"
|
||||
end_if
|
||||
# determine show-utils helper script
|
||||
show_utils = set "util/show-utils.sh"
|
||||
if eq "${CARGO_MAKE_RUST_TARGET_OS}" "windows"
|
||||
show_utils = set "util/show-utils.BAT"
|
||||
end_if
|
||||
set_env CARGO_MAKE_VAR_SHOW_UTILS "${show_utils}"
|
||||
# rebuild CARGO_MAKE_TASK_ARGS for various targets
|
||||
args = set ${CARGO_MAKE_TASK_ARGS}
|
||||
# * rebuild for 'features' target
|
||||
args_features = replace ${args} ";" ","
|
||||
set_env CARGO_MAKE_TASK_BUILD_FEATURES_ARGS "${args_features}"
|
||||
# * rebuild for 'examples' target
|
||||
args_examples = replace ${args} ";" " --example "
|
||||
if is_empty "${args_examples}"
|
||||
args_examples = set "--examples"
|
||||
end_if
|
||||
set_env CARGO_MAKE_TASK_BUILD_EXAMPLES_ARGS "${args_examples}"
|
||||
# * rebuild for 'utils' target
|
||||
args_utils_list = split "${args}" ";"
|
||||
for arg in "${args_utils_list}"
|
||||
if not is_empty "${arg}"
|
||||
if not starts_with "${arg}" "uu_"
|
||||
arg = set "uu_${arg}"
|
||||
end_if
|
||||
args_utils = set "${args_utils} -p${arg}"
|
||||
end_if
|
||||
end
|
||||
args_utils = trim "${args_utils}"
|
||||
set_env CARGO_MAKE_TASK_BUILD_UTILS_ARGS "${args_utils}"
|
||||
''']
|
||||
|
||||
### tasks
|
||||
|
||||
[tasks.default]
|
||||
description = "## *DEFAULT* Build (debug-mode) and test project"
|
||||
category = "[project]"
|
||||
dependencies = ["action-build-debug", "test-terse"]
|
||||
|
||||
##
|
||||
|
||||
[tasks.build]
|
||||
description = "## Build (release-mode) project"
|
||||
category = "[project]"
|
||||
dependencies = ["core::pre-build", "action-build-release", "core::post-build"]
|
||||
|
||||
[tasks.build-debug]
|
||||
description = "## Build (debug-mode) project"
|
||||
category = "[project]"
|
||||
dependencies = ["action-build-debug"]
|
||||
|
||||
[tasks.build-examples]
|
||||
description = "## Build (release-mode) project example(s); usage: `cargo make (build-examples | examples) [EXAMPLE]...`"
|
||||
category = "[project]"
|
||||
dependencies = ["core::pre-build", "action-build-examples", "core::post-build"]
|
||||
|
||||
[tasks.build-features]
|
||||
description = "## Build (with features; release-mode) project; usage: `cargo make (build-features | features) FEATURE...`"
|
||||
category = "[project]"
|
||||
dependencies = ["core::pre-build", "action-build-features", "core::post-build"]
|
||||
|
||||
[tasks.build-release]
|
||||
alias = "build"
|
||||
|
||||
[tasks.debug]
|
||||
alias = "build-debug"
|
||||
|
||||
[tasks.example]
|
||||
description = "hidden singular-form alias for 'examples'"
|
||||
category = "[project]"
|
||||
dependencies = ["examples"]
|
||||
|
||||
[tasks.examples]
|
||||
alias = "build-examples"
|
||||
|
||||
[tasks.features]
|
||||
alias = "build-features"
|
||||
|
||||
[tasks.format]
|
||||
description = "## Format code files (with `cargo fmt`; includes tests)"
|
||||
category = "[project]"
|
||||
dependencies = ["action-format", "action-format-tests"]
|
||||
|
||||
[tasks.help]
|
||||
description = "## Display help"
|
||||
category = "[project]"
|
||||
dependencies = ["action-display-help"]
|
||||
|
||||
[tasks.install]
|
||||
description = "## Install project binary (to $HOME/.cargo/bin)"
|
||||
category = "[project]"
|
||||
command = "cargo"
|
||||
args = ["install", "--path", "."]
|
||||
|
||||
[tasks.lint]
|
||||
description = "## Display lint report"
|
||||
category = "[project]"
|
||||
dependencies = ["action-clippy", "action-fmt_report"]
|
||||
|
||||
[tasks.release]
|
||||
alias = "build"
|
||||
|
||||
[tasks.test]
|
||||
description = "## Run project tests"
|
||||
category = "[project]"
|
||||
dependencies = ["core::pre-test", "core::test", "core::post-test"]
|
||||
|
||||
[tasks.test-terse]
|
||||
description = "## Run project tests (with terse/summary output)"
|
||||
category = "[project]"
|
||||
dependencies = ["core::pre-test", "action-test_quiet", "core::post-test"]
|
||||
|
||||
[tasks.test-util]
|
||||
description = "## Test (individual) utilities; usage: `cargo make (test-util | test-uutil) [UTIL_NAME...]`"
|
||||
category = "[project]"
|
||||
dependencies = ["action-test-utils"]
|
||||
|
||||
[tasks.test-utils]
|
||||
description = "hidden plural-form alias for 'test-util'"
|
||||
category = "[project]"
|
||||
dependencies = ["test-util"]
|
||||
|
||||
[tasks.test-uutil]
|
||||
description = "hidden alias for 'test-util'"
|
||||
category = "[project]"
|
||||
dependencies = ["test-util"]
|
||||
|
||||
[tasks.test-uutils]
|
||||
description = "hidden alias for 'test-util'"
|
||||
category = "[project]"
|
||||
dependencies = ["test-util"]
|
||||
|
||||
[tasks.uninstall]
|
||||
description = "## Remove project binary (from $HOME/.cargo/bin)"
|
||||
category = "[project]"
|
||||
command = "cargo"
|
||||
args = ["uninstall"]
|
||||
|
||||
[tasks.util]
|
||||
description = "## Build (individual; release-mode) utilities; usage: `cargo make (util | uutil) [UTIL_NAME...]`"
|
||||
category = "[project]"
|
||||
dependencies = [
|
||||
"core::pre-build",
|
||||
"action-determine-utils",
|
||||
"action-build-utils",
|
||||
"core::post-build",
|
||||
]
|
||||
|
||||
[tasks.utils]
|
||||
description = "hidden plural-form alias for 'util'"
|
||||
category = "[project]"
|
||||
dependencies = ["util"]
|
||||
|
||||
[tasks.uutil]
|
||||
description = "hidden alias for 'util'"
|
||||
category = "[project]"
|
||||
dependencies = ["util"]
|
||||
|
||||
[tasks.uutils]
|
||||
description = "hidden plural-form alias for 'util'"
|
||||
category = "[project]"
|
||||
dependencies = ["util"]
|
||||
|
||||
### actions
|
||||
|
||||
[tasks.action-build-release]
|
||||
description = "`cargo build --release`"
|
||||
command = "cargo"
|
||||
args = ["build", "--release", "@@split(CARGO_MAKE_CARGO_BUILD_TEST_FLAGS, )"]
|
||||
|
||||
[tasks.action-build-debug]
|
||||
description = "`cargo build`"
|
||||
command = "cargo"
|
||||
args = ["build", "@@split(CARGO_MAKE_CARGO_BUILD_TEST_FLAGS, )"]
|
||||
|
||||
[tasks.action-build-examples]
|
||||
description = "`cargo build (--examples|(--example EXAMPLE)...)`"
|
||||
command = "cargo"
|
||||
args = [
|
||||
"build",
|
||||
"--release",
|
||||
"@@split(CARGO_MAKE_CARGO_BUILD_TEST_FLAGS, )",
|
||||
"${CARGO_MAKE_TASK_BUILD_EXAMPLES_ARGS}",
|
||||
]
|
||||
|
||||
[tasks.action-build-features]
|
||||
description = "`cargo build --release --features FEATURES`"
|
||||
command = "cargo"
|
||||
args = [
|
||||
"build",
|
||||
"--release",
|
||||
"--no-default-features",
|
||||
"--features",
|
||||
"${CARGO_MAKE_TASK_BUILD_FEATURES_ARGS}",
|
||||
]
|
||||
|
||||
[tasks.action-build-utils]
|
||||
description = "Build individual utilities"
|
||||
dependencies = ["action-determine-utils"]
|
||||
command = "cargo"
|
||||
# args = ["build", "@@remove-empty(CARGO_MAKE_TASK_BUILD_UTILS_ARGS)" ]
|
||||
args = ["build", "--release", "@@split(CARGO_MAKE_TASK_BUILD_UTILS_ARGS, )"]
|
||||
|
||||
[tasks.action-clippy]
|
||||
description = "`cargo clippy` lint report"
|
||||
command = "cargo"
|
||||
args = ["clippy", "@@split(CARGO_MAKE_CARGO_BUILD_TEST_FLAGS, )"]
|
||||
|
||||
[tasks.action-determine-utils]
|
||||
script_runner = "@duckscript"
|
||||
script = ['''
|
||||
package_options = get_env CARGO_MAKE_TASK_BUILD_UTILS_ARGS
|
||||
if is_empty "${package_options}"
|
||||
show_utils = get_env CARGO_MAKE_VAR_SHOW_UTILS
|
||||
features = get_env CARGO_MAKE_VAR_BUILD_TEST_FEATURES
|
||||
if not is_empty "${features}"
|
||||
result = exec "${show_utils}" --features "${features}"
|
||||
else
|
||||
result = exec "${show_utils}"
|
||||
endif
|
||||
set_env CARGO_MAKE_VAR_UTILS ${result.stdout}
|
||||
utils = array %{result.stdout}
|
||||
for util in ${utils}
|
||||
if not is_empty "${util}"
|
||||
if not starts_with "${util}" "uu_"
|
||||
util = set "uu_${util}"
|
||||
end_if
|
||||
package_options = set "${package_options} -p${util}"
|
||||
end_if
|
||||
end
|
||||
package_options = trim "${package_options}"
|
||||
end_if
|
||||
set_env CARGO_MAKE_TASK_BUILD_UTILS_ARGS "${package_options}"
|
||||
''']
|
||||
|
||||
[tasks.action-determine-tests]
|
||||
script_runner = "@duckscript"
|
||||
script = ['''
|
||||
test_files = glob_array tests/**/*.rs
|
||||
for file in ${test_files}
|
||||
file = replace "${file}" "\\" "/"
|
||||
if not is_empty ${file}
|
||||
if is_empty "${tests}"
|
||||
tests = set "${file}"
|
||||
else
|
||||
tests = set "${tests} ${file}"
|
||||
end_if
|
||||
end_if
|
||||
end
|
||||
set_env CARGO_MAKE_VAR_TESTS "${tests}"
|
||||
''']
|
||||
|
||||
[tasks.action-format]
|
||||
description = "`cargo fmt`"
|
||||
command = "cargo"
|
||||
args = ["fmt"]
|
||||
|
||||
[tasks.action-format-tests]
|
||||
description = "`cargo fmt` tests"
|
||||
dependencies = ["action-determine-tests"]
|
||||
command = "cargo"
|
||||
args = ["fmt", "--", "@@split(CARGO_MAKE_VAR_TESTS, )"]
|
||||
|
||||
[tasks.action-fmt]
|
||||
alias = "action-format"
|
||||
|
||||
[tasks.action-fmt_report]
|
||||
description = "`cargo fmt` lint report"
|
||||
command = "cargo"
|
||||
args = ["fmt", "--", "--check"]
|
||||
|
||||
[tasks.action-spellcheck-codespell]
|
||||
description = "`codespell` spellcheck repository"
|
||||
command = "codespell" # (from `pip install codespell`)
|
||||
args = [
|
||||
".",
|
||||
"--skip=*/.git,./target,./tests/fixtures",
|
||||
"--ignore-words-list=mut,od",
|
||||
]
|
||||
|
||||
[tasks.action-test-utils]
|
||||
description = "Build individual utilities"
|
||||
dependencies = ["action-determine-utils"]
|
||||
command = "cargo"
|
||||
# args = ["build", "@@remove-empty(CARGO_MAKE_TASK_BUILD_UTILS_ARGS)" ]
|
||||
args = ["test", "@@split(CARGO_MAKE_TASK_BUILD_UTILS_ARGS, )"]
|
||||
|
||||
[tasks.action-test_quiet]
|
||||
description = "Test (in `--quiet` mode)"
|
||||
command = "cargo"
|
||||
args = ["test", "--quiet", "@@split(CARGO_MAKE_CARGO_BUILD_TEST_FLAGS, )"]
|
||||
|
||||
[tasks.action-display-help]
|
||||
script_runner = "@duckscript"
|
||||
script = ['''
|
||||
echo ""
|
||||
echo "usage: `cargo make TARGET [ARGS...]`"
|
||||
echo ""
|
||||
echo "TARGETs:"
|
||||
echo ""
|
||||
result = exec "cargo" make --list-all-steps
|
||||
# set_env CARGO_MAKE_VAR_UTILS ${result.stdout}
|
||||
# echo ${result.stdout}
|
||||
lines = split ${result.stdout} "\n"
|
||||
# echo ${lines}
|
||||
for line in ${lines}
|
||||
if not is_empty ${line}
|
||||
if contains ${line} " - ##"
|
||||
line_segments = split ${line} " - ##"
|
||||
desc = array_pop ${line_segments}
|
||||
desc = trim ${desc}
|
||||
target = array_pop ${line_segments}
|
||||
target = trim ${target}
|
||||
l = length ${target}
|
||||
r = range 0 18
|
||||
spacing = set ""
|
||||
for i in ${r}
|
||||
if greater_than ${i} ${l}
|
||||
spacing = set "${spacing} "
|
||||
end_if
|
||||
end
|
||||
echo ${target}${spacing}${desc}
|
||||
end_if
|
||||
end_if
|
||||
end
|
||||
echo ""
|
||||
''']
|
||||
Loading…
Add table
Add a link
Reference in a new issue