-
Notifications
You must be signed in to change notification settings - Fork 43
Description
Hey, great idea btw. Really enjoying this pattern.
But I ran into a situation where I would very much like to add a function into my Taskfile but not have it be runnable directly, or perhaps as a compromise not be listed in the help menu.
This comes in handy when you want to define a "helper" function that multiple tasks can call.
For example, currently I have some tasks that look like this:
function flask {
## Run any Flask commands
docker-compose exec web flask "${@}"
}
function flake8 {
## Lint Python code with flake8
docker-compose exec web flake8 "${@}"
}It would be really nice if I could do this instead:
function _web {
docker-compose exec web "${@}"
}
function flask {
## Run any Flask commands
_web flask "${@}"
}
function flake8 {
## Lint Python code with flake8
_web flake8 "${@}"
}And then the help menu would only show the flask and flake8 commands and running _web directly would throw a command not found.
I figured we could mark these helper functions with an underscore to distinguish what should be private or not.
Method I've tried so far that partially works
You can do compgen -A function | grep -v "^_" | cat -n which hides them from the task list but technically you can still run the helper functions directly.
Any thoughts on how to do this in a better way?