From: martin f. krafft <hidden> Date: 2016-06-15 22:45:40
The user ought to be able to call `tg help` from anywhere in the filesystem,
not just Git repositories, so the help parsing has to happen before the calls
to git git binary.
Debian bug: #501982
Signed-off-by: martin f. krafft <redacted>
---
tg.sh | 28 +++++++++++++++++++++++++---
1 files changed, 25 insertions(+), 3 deletions(-)
@@ -235,12 +235,37 @@ do_help()fi}+# Check whether we are supposed to output the help message+should_do_help()+{+# we are being sourced for utility functions, never run help+[-z"$tg__include"]||return1++localprev+while[-n"$1"];do+case"$1"in+help|--help|-h)+shift+echo"${1:-$prev}"+return0+esac+prev="$1"+shift+done++# run help when there was no previous topic, meaning that there where+# no arguments at all+test-z"$prev"+}## Startup[-d"@cmddir@"]||die"No command directory: '@cmddir@'"+# check if we should run help and get the topic while we're at it+help_topic="$(should_do_help"$@")"&&{do_help"$help_topic";exit0;}+## Initial setupset-e
From: Petr Baudis <hidden> Date: 2016-06-15 22:45:40
On Thu, Nov 20, 2008 at 12:46:34PM +0100, martin f. krafft wrote:
quoted hunk
The user ought to be able to call `tg help` from anywhere in the filesystem,
not just Git repositories, so the help parsing has to happen before the calls
to git git binary.
Debian bug: #501982
Signed-off-by: martin f. krafft <redacted>
---
tg.sh | 28 +++++++++++++++++++++++++---
1 files changed, 25 insertions(+), 3 deletions(-)
@@ -235,12 +235,37 @@ do_help()fi}+# Check whether we are supposed to output the help message+should_do_help()+{+# we are being sourced for utility functions, never run help+[-z"$tg__include"]||return1++localprev+while[-n"$1"];do+case"$1"in+help|--help|-h)+shift+echo"${1:-$prev}"+return0+esac+prev="$1"+shift+done++# run help when there was no previous topic, meaning that there where+# no arguments at all+test-z"$prev"+}## Startup[-d"@cmddir@"]||die"No command directory: '@cmddir@'"+# check if we should run help and get the topic while we're at it+help_topic="$(should_do_help"$@")"&&{do_help"$help_topic";exit0;}+
Why is this so complicated? Can't you just do_help from
should_do_help()? The overall semantics seems strange anyway, though -
it seems that 'tg mail --help -r' will try to show help for '-r' instead
of 'mail'.
--
Petr "Pasky" Baudis
People who take cold baths never have rheumatism, but they have
cold baths.
From: martin f krafft <hidden> Date: 2016-06-15 22:45:40
also sprach Petr Baudis [off-list ref] [2008.11.20.1527 +0100]:
Why is this so complicated? Can't you just do_help from
should_do_help()?
Yes, I could, but that would be in conflict with my understanding of
the Law of Demeter.
The overall semantics seems strange anyway, though - it seems that
'tg mail --help -r' will try to show help for '-r' instead of
'mail'.
True, but then we are parsing command lines. Would you be opposed to
a getopt (POSIX) approach to normalising/parsing the command line?
Cheers,
--
.''`. martin f. krafft [off-list ref]
: :' : proud Debian developer, author, administrator, and user
`. `'` http://people.debian.org/~madduck - http://debiansystem.info
`- Debian - when you have better things to do than fixing systems
this space intentionally left occupied.
From: martin f krafft <hidden> Date: 2016-06-15 22:45:40
also sprach Petr Baudis [off-list ref] [2008.11.20.1608 +0100]:
What is that?
http://en.wikipedia.org/wiki/Law_of_Demeter
In the context of our discussion, it basically means that if
should_do_help calls do_help, then we cannot test should_do_help
independently (without mocking out do_help, which is plain ugly).
Not that we have a testing infrastructure (yet) anyway, but...
quoted
True, but then we are parsing command lines. Would you be opposed to
a getopt (POSIX) approach to normalising/parsing the command line?
No. :-)
Good. I will see what I can do about this. In the mean time, I will
just leave things as they are.
--
.''`. martin f. krafft [off-list ref]
: :' : proud Debian developer, author, administrator, and user
`. `'` http://people.debian.org/~madduck - http://debiansystem.info
`- Debian - when you have better things to do than fixing systems
windoze nt crashed.
i am the blue screen of death.
no one hears your screams.