Commit Graph

50 Commits

Author SHA1 Message Date
Lyndon Brown
7276d0213f fix usage/help/man bugs
- the definition of $PROGRAM as used in $USAGE strings defined in each
   script has been broken for a long time, being simply "lb" when it needs
   to be "lb COMMAND".
 - `config` changed $PROGRAM to "lb config" thus its output was correct in
   this regard unlike everything else, but with the switch to a more
   "intelligent" `Man()` function recently, it means that instead of
   `man lb config`, what was actually run was `man lb config config`,
   which displayed the manpage, then on exiting with `q`, it showed some
   sort of index line todo with a "config" search (no exact manpage
   match?), for which you had to enter `ctrl+c` to get rid of.

this revises things to fix the issues, minimising change by changing
$PROGRAM to "lb COMMAND", with the frontend overriding this.

Gbp-Dch: Ignore
2020-05-03 01:38:17 +01:00
Lyndon Brown
372a8fd91a args: restore a little tidying
lost in a reversion

Gbp-Dch: Ignore
2020-05-03 01:31:47 +01:00
Lyndon Brown
22d8ac15db options: de-duplicate common option handling 2020-05-02 18:18:49 +01:00
Raphaël Hertzog
104fa20399 Revert "frontend: properly handle option processing"
This reverts commit 6b7c8ed4bf as it's
breaking multi-value space-separated parameters.
2020-04-24 15:37:13 +02:00
Raphaël Hertzog
4c75f80e67 Use descriptive parameter names for Usage() 2020-04-23 16:38:59 +02:00
Lyndon Brown
b3bba232ac usage: take exit code as param
thus it can correctly indicate success/fail status instead of always
indicating failure. when a user asks for usage with -u|--usage then we
should exit in success mode rather than failure as when usage in printed
in response to incorrect usage.

Gbp-Dch: Short
2020-04-23 16:32:26 +02:00
Lyndon Brown
6b7c8ed4bf frontend: properly handle option processing
this means that the usage goes from:
 lb {-h|--help|-u|--usage|-v|--version}
 lb COMMAND [OPTIONS]

to:
 lb {-h|--help|-u|--usage|-v|--version}
 lb [FRONTEND_OPTIONS] COMMAND [COMMAND_OPTIONS]

though it is probably not worth is to update the description in the
manpages...? hmm...

so for instance this matters for color control with --color|--no-color
(you already had full control via environment vars). previously you could
do `lb COMMAND --no-color` to turn off colour, only to find that output
at the frontend level was still coloured (the option is processed at the
command context level, not the frontend), so you might try to instead use
`lb --no-color COMMAND`, only to find that this was not supported. Well
now it is, and used at the frontend level will fully control colour output
(after the command is processed anyway).

the full set of common options are thus available (except --force) at the
frontend level, and thus for instance all Echo_*() helpers used in the
frontend will work correctly after args are processed.

furthermore usage like `lb --color --help` will actually work. (not that
color is used there, but this previously would have failed with the
frontend treating the `--color` argument as the command; that's the point!)

Gbp-Dch: Short
2020-04-23 16:29:00 +02:00
Lyndon Brown
6b734df9f3 fix incorrect handling of -c|--conffile
this option actually only has an impact when used for `lb config`; it thus
was incorrectly accepted and captured by Arguments() and the documentation
was wrong.

going back through git history, this has been incorrect since the v0.99 days.

also, reorganised the list alphabetically (no-color was inserted in the
wrong place).

Gbp-Dch: Short
2020-04-23 11:52:13 +01:00
Lyndon Brown
85e0681ee8 args: fix a typo
Gbp-Dch: Ignore
2020-03-23 08:06:51 +00:00
Lyndon Brown
c55eb8a0c3 use local scope for private function vars
all vars affected have been carefully checked to be quite certain
that they are definitely local

where variable is assigned the return value of a function/command, the
local "declaration" is deliberately done on a separate line, since
`local FOO` is actually treated itself as a command rather than a
declaration; will thus always cause $? to be zero, and thus if done on
the same line as such an assignment can not only clobber $? but in doing
so unintentionally blocks failure of a command from triggering the
expected exit from having `set -e`.

also, from testing, i have found that when assigning "${@}" this must be
done on a separate line confusingly as otherwise an error occurs.

Gbp-Dch: Short
2020-03-16 22:10:03 +00:00
Lyndon Brown
ca520eb5f0 split stdout & stderr auto colouring
thus for some reason if one is connected to a tty and the other a file,
we still get colour in the tty by default.

in terms of options, --color and --no-color override both, no granular
ones added since it's not worth it imo.

this is backwards compatible with custom configs setting `_COLOR`.

it could be argued that setting $_COLOR to "false" for the auto non-tty
cases is redundant, which it is, but it doesn't hurt to do so; it ensures
that if anything (inc. 3rd-party hooks and such) rely on it that it
remains correct; and ensures that if anything in the future mistakenly
uses $_COLOR instead of $_COLOR_OUT|$_COLOR_ERR that at least that will
only be broken for the use case of only one of stdout|sdterr being a tty.

Gbp-Dch: Ignore
2020-03-16 13:32:16 +00:00
Lyndon Brown
49e68da5ee allow turning off colour
necessary to give control when colour is default enabled

Gbp-Dch: Short
2020-03-16 13:32:16 +00:00
Lyndon Brown
7a4a9f94b8 amend copyright & licensing blocks
Current versions of the project files are built upon versions published
and licensed by Daniel Baumann, but are modified copies of those files and
thus need to be marked as such per licensing requirements (afaik he did
not pass along ownership / licensing rights to anyone when he left the
project). We should also be careful to not be misrepresenting such
modified copies as being attributed to Daniel.

Adding a new copyright line referring to "The Debian Live team" should
suffice for this.

The authorship block in man pages has also similarly been updated.

Notes:
 - tweaked a copy of daniel copyright lines stating 2014 instead of 2015.
   both of these cases were in files that i had personally introduced in
   some of my past merged commits that moved some code around. i don't know
   why they stated 2014.
 - binary_onie was introduced in 2018, so that has a 2018 date instead of
   2016 unlike the rest.
 - 'efi-image' is a 3rd-party (Canonical Ltd) work that we bundle, but it
   has been modified by 674794a8f4 and
   36a3ba7634 so I similarly added a
   debian live copyright line.
 - 'grub-cpmodules' is similar. it was only changed by the indentation fix
   of 36a3ba7634 but modification is
   modification, and this does help cover any possible future changes that
   might be made.
2020-03-11 13:51:19 +00:00
Lyndon Brown
cf2a9b951c arguments: fix unreachable and poor argument error handling
all scripts use `set -e` which means that if getop fails, the subsequent
error check that would print an error in addition to any printed by getopt
itself would never actually be reached.

the first though here would be to remove the pointless error check, but
getopt does not include the word "error" with an unrecognised option
failure, nor does it use colour to highlight problems, both of which mean
that it is a little lacking in terms of highlighting problems to users.

thus we properly capture and use the exit code here and output an
appropriate message per invalid argument vs getopt internal error.

also, removed the redundant stderr redirection which is already done
by Echo_error().

Gbp-Dch: Short
2020-03-10 12:45:23 +00:00
Lyndon Brown
2511fff259 don't unnecessarily convert exit codes to strings
Closes: 
2020-03-05 11:33:12 +00:00
Roland Clobus
56784ca1c0 Reenabled the command line option for colored messages for all scripts. The functionality was added 2008-11-01, but was not really active. 2019-06-03 10:48:58 +00:00
Daniel Baumann
242aef5d83 Updating year in copyright notices to 2015. 2015-01-04 20:05:44 +01:00
Daniel Baumann
eb336bb782 Updating copyright notices for 2014. 2014-02-08 17:47:24 +01:00
Daniel Baumann
59ce459f40 Removing all references to my old email address. 2013-05-06 14:50:06 +02:00
Daniel Baumann
62d94a4454 Updating year in all copyright notices. 2013-05-06 14:50:03 +02:00
Daniel Baumann
d1047e809a Adding debian version 4.0~a1-1. 2013-05-06 14:48:46 +02:00
Daniel Baumann
a203b86fdd Updating year in all copyright notices. 2013-01-01 00:13:01 +01:00
Daniel Baumann
508510e097 Updating GPL standard header in all files. 2012-07-30 18:19:27 +02:00
Daniel Baumann
c07a76f649 Decrufting version flag. 2012-07-18 21:55:08 +02:00
Daniel Baumann
822dc2c028 Updating year in copyright notices for 2012. 2012-02-06 23:15:12 +01:00
Daniel Baumann
18eeaae602 Updating year in hooks and script files. 2011-03-09 19:20:42 +01:00
Daniel Baumann
c5c3f6133a Adding debian version 3.0~a1-1. 2011-03-09 19:19:23 +01:00
Daniel Baumann
2ddc0cef5d Updating year in manpage, hooks, script and template files. 2011-03-09 19:17:33 +01:00
Daniel Baumann
4d22ca948a Updating copyright headers for live-build. 2011-03-09 19:17:18 +01:00
Daniel Baumann
54518852c8 Updating year to 2010 in copyright notices. 2011-03-09 19:17:04 +01:00
Daniel Baumann
701b5affd4 For consistency, using true|false instead of enabled|disabled in configuration options. 2011-03-09 19:17:03 +01:00
Daniel Baumann
992a145afd Automatically displaying manpage when calling a helper with -h or --help. 2011-03-09 19:09:40 +01:00
Daniel Baumann
989f26d87b Updating year in copyright notices for 2009. 2011-03-09 19:09:40 +01:00
Daniel Baumann
22a06c6566 Generalizing internal LH_CONFFILE variable. 2011-03-09 19:03:44 +01:00
Daniel Baumann
776a7b2227 Generalizing internal LH_BREAKPOINTS variable. 2011-03-09 19:03:44 +01:00
Daniel Baumann
ad6b01b388 Generalizing internal LH_VERBOSE variable. 2011-03-09 19:03:44 +01:00
Daniel Baumann
cb0894b3b3 Generalizing internal LH_QUIET variable. 2011-03-09 19:03:43 +01:00
Daniel Baumann
3ff1c8050b Generalizing internal LH_DEBUG variable. 2011-03-09 19:03:43 +01:00
Daniel Baumann
137f573c85 Generalizing internal LH_FORCE variable. 2011-03-09 19:03:43 +01:00
Daniel Baumann
37d2fb4b0f Don't use set -e in sourced functions, this is the job of the actual executed script. 2011-03-09 19:03:43 +01:00
Tiago Bortoletto Vaz
6205a24620 Adding last modifications in order to have localization fully working in live-helper. This commit goes with some pt_BR translations just for testing. Thanks to Antonio Terceiro for helping and coding in some shell stuff. 2011-03-09 19:03:38 +01:00
Daniel Baumann
c5a91189a0 Updating copyright years to 2008. 2011-03-09 19:01:41 +01:00
Daniel Baumann
3c0d008c79 When a wrong argument is passed, that argument should be listed (Closes: ). 2011-03-09 18:36:14 +01:00
Daniel Baumann
3aae363e08 Fixing typing error, thanks to Peter Skogström <peter.skogstrom@bitrunner.com>. 2011-03-09 18:22:27 +01:00
Daniel Baumann
f2734daf0a Replacing backticks with POSIX expression. 2011-03-09 18:22:27 +01:00
Daniel Baumann
0d0de885e3 Adding live-helper 1.0~a22-1. 2011-03-09 18:22:26 +01:00
Daniel Baumann
8a4a50fdb6 Adding live-helper 1.0~a7-1. 2011-03-09 18:18:29 +01:00
Daniel Baumann
1863ed8874 Adding live-helper 1.0~a5-1. 2011-03-09 18:18:29 +01:00
Daniel Baumann
da353a5231 Adding live-helper 1.0~a4-1. 2011-03-09 18:18:29 +01:00
Daniel Baumann
799d4bfb31 Adding live-helper 1.0~a3-1. 2011-03-09 18:18:28 +01:00