From 83fe41dbe4967de87dedb58f83e3c1e35afe76cd Mon Sep 17 00:00:00 2001 From: Daylin Morgan Date: Thu, 19 Jan 2023 12:21:12 -0600 Subject: [PATCH] style: improve task specific help --- src/builtins.mk | 2 +- src/help.py | 4 ++-- task.mk | 14 +++++++++----- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/builtins.mk b/src/builtins.mk index 4d931f6..3a7cc40 100644 --- a/src/builtins.mk +++ b/src/builtins.mk @@ -5,7 +5,7 @@ ifeq (help,$(firstword $(MAKECMDGOALS))) endif ## h, help | show this help h help: - $(call py,help_py) || { echo "exiting early!"; exit 1; } + $(call py,help_py) _help: export SHOW_HIDDEN=true _help: help ifdef PRINT_VARS diff --git a/src/help.py b/src/help.py index fcf9737..34e22a7 100644 --- a/src/help.py +++ b/src/help.py @@ -185,14 +185,14 @@ def print_help(): def print_arg_help(help_args): print(f"{ansi.style('task.mk recipe help','header')}\n") for arg in help_args.split(): - print("\n".join(parse_goal(gen_makefile(), arg))) - print() + print("\n".join((*parse_goal(gen_makefile(), arg),'\n'))) def main(): help_args = os.getenv("HELP_ARGS") if help_args: print_arg_help(help_args) + print(f"{ansi.faint}exiting task.mk{ansi.end}") sys.exit(1) else: print_help() diff --git a/task.mk b/task.mk index 74b1367..80f8c3b 100644 --- a/task.mk +++ b/task.mk @@ -1,7 +1,7 @@ # }> [github.com/daylinmorgan/task.mk] <{ # # Copyright (c) 2022 Daylin Morgan # MIT License -# version: v22.9.28-3-g76e9ece-dev +# version: v22.9.28-4-gbf0394c-dev # # task.mk should be included at the bottom of your Makefile with `-include .task.mk` # See below for the standard configuration options that should be set prior to including this file. @@ -27,7 +27,7 @@ ifeq (help,$(firstword $(MAKECMDGOALS))) endif ## h, help | show this help h help: - $(call py,help_py) || { echo "exiting early!"; exit 1; } + $(call py,help_py) _help: export SHOW_HIDDEN=true _help: help ifdef PRINT_VARS @@ -91,7 +91,11 @@ $(utils_py) a = ansi = Ansi(target="stdout") MaxLens = namedtuple("MaxLens", "goal msg") pattern = re.compile( - r"^## (?P.*?) \| (?P.*?)(?:\s?\| args: (?P.*?))?$$|^### (?P.*?)?(?:\s?\| args: (?P.*?))?$$" + r""" + ^\#\#\ (?P.*?)\ \|\ (?P.*?)(?:\s?\|\ args:\ (?P.*?))?$$ + | + ^\#\#\#\ (?P.*?)?(?:\s?\|\ args:\ (?P.*?))?$$""" + ,re.X ) goal_pattern = re.compile(r"""^(?!#|\t)(.*):.*\n\t""", re.MULTILINE) def parseargs(argstring): @@ -229,12 +233,12 @@ def print_help(): def print_arg_help(help_args): print(f"{ansi.style('task.mk recipe help','header')}\n") for arg in help_args.split(): - print("\n".join(parse_goal(gen_makefile(), arg))) - print() + print("\n".join((*parse_goal(gen_makefile(), arg),'\n'))) def main(): help_args = os.getenv("HELP_ARGS") if help_args: print_arg_help(help_args) + print(f"{ansi.faint}exiting task.mk{ansi.end}") sys.exit(1) else: print_help()