Граф коммитов

179 Коммитов

Автор SHA1 Сообщение Дата
Nick Alexander aaeaaec3dc Bug 1521996 - Part 1: Add `conditional_name` to mach @Command definition. r=ahal
We want `mach run` for Android to be wildly different than `mach run`
for Desktop.  But right now, mach really doesn't support two different
implementations of the same underlying named command.  The avenues
that might support different implementations, mostly run through
`conditions`.

`conditions` were added to mach commands in Bug 901972, and never
really anticipated this use case: commands are keyed by name condition
evaluation is delayed until dispatch-time.  In order to have different
commands with the same name, and have full support for `--help`,
command matching, suggestions, etc, we really need conditions to
evaluate at parse-time.  Indeed, since Bug 901972 landed, we've moved
context creation earlier in the dispatch flow and hacked in things
that look like parse-time conditions (see Bug 1291335 and Bug
1305695).

This approach is not the prettiest, but it handles this narrow
use-case -- making `mach run` and `mach install` different on Android
-- without much code churn.

Differential Revision: https://phabricator.services.mozilla.com/D18290

--HG--
extra : moz-landing-system : lando
2019-05-17 21:39:31 +00:00
Manish Goregaokar 409a85d649 Bug 1549636: use uuid4() in mach; r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D30147

--HG--
extra : moz-landing-system : lando
2019-05-07 02:34:53 +00:00
Bobby Holley cb0e71a251 Bug 1543246 - Suggest |./mach busted| when something breaks. r=froydnj
Depends on D26818

Differential Revision: https://phabricator.services.mozilla.com/D26930

--HG--
extra : moz-landing-system : lando
2019-04-10 16:40:14 +00:00
Chris Manchester 5c005e476e Bug 1526072 - Record cpu utilization and clobber/full builds in build telemetry. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D22630

--HG--
extra : moz-landing-system : lando
2019-03-27 22:42:48 +00:00
Noemi Erli 6269026d4e Backed out 4 changesets (bug 1526072) for causing build bustages in test_clobber.py CLOSED TREE
Backed out changeset d3d56eca307f (bug 1526072)
Backed out changeset 37942b0f911b (bug 1526072)
Backed out changeset a0eb0f43c928 (bug 1526072)
Backed out changeset c1d1576431d7 (bug 1526072)
2019-03-27 22:51:22 +02:00
Chris Manchester 68be120a7f Bug 1526072 - Record cpu utilization and clobber/full builds in build telemetry. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D22630

--HG--
extra : moz-landing-system : lando
2019-03-18 20:36:54 +00:00
Andrew Halberstadt 68820fd64b Bug 1513951 - [mach] Fix error handling bug in config.py r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D21430

--HG--
extra : moz-landing-system : lando
2019-02-28 18:03:47 +00:00
Andrew Halberstadt 80bdd47243 Bug 1518572 - [mach] Stuff the 'handler' instance into the context when applicable r=firefox-build-system-reviewers,mshal
For mach commands that have 'pass_context=True', we should implicitly add the
handler instance to the context. This will give mach command implementations an
easy way to access things like the command/subcommand names, the parser, argv
list, etc.

Differential Revision: https://phabricator.services.mozilla.com/D20521

--HG--
extra : moz-landing-system : lando
2019-02-25 16:19:05 +00:00
Andrew Halberstadt 24b0aff27c Bug 1520006 - [mach] Fix bug in 'mach completion', r=nalexander
This fixes an issue from bug 1518586.

It stemmed from the fact that I misunderstood how the 'parser' attribute
was being used in mach commands and didn't do enough testing. This patch
fixes things such that we check that 'parser' is not None, as well as
add the completion targets from 'handler.arguments'.

Differential Revision: https://phabricator.services.mozilla.com/D16501

--HG--
extra : moz-landing-system : lando
2019-01-14 21:20:55 +00:00
Andrew Halberstadt 292cda01c7 Bug 1519968 - [mach] Minor improvements to autocomplete docs, r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D16495

--HG--
extra : moz-landing-system : lando
2019-01-14 19:43:53 +00:00
Andrew Halberstadt 8905ad4bab Bug 1518586 - [mach] Implement bash completion for subcommands and arguments r=nalexander
Since we're calling into a mach command for the current completion
implementation anyway (and incurring python startup penalties), we
might as well move all the bash logic into the mach command.

The new 'mach-completion' command was created in case there are
scripts relying on the current behaviour of 'mach-commands'.

Depends on D16254

Differential Revision: https://phabricator.services.mozilla.com/D16255

--HG--
extra : moz-landing-system : lando
2019-01-11 15:28:49 +00:00
Andrew Halberstadt 1d78259cdb Bug 1518586 - [mach] Add some basic usage docs r=nalexander
I was looking for a good place to put documentation for enabling the
bash completion script when I realized that the 'mach' documentation
is targeted at tool developers rather than users.

Seeing as this is the main 'mach' documentation and we want to make
'firefox-source-docs' the place to go for contribution information,
we should endeavour to target end users with this documentation.

This adds a very basic usage page which should be expanded upon, but
is better than nothing.

I changed the headers in 'index.rst' to use raw:: html so that they
don't show up in the nav bar to the left (and subsequently block the
*actually important* things from appearing).

Differential Revision: https://phabricator.services.mozilla.com/D16254

--HG--
extra : moz-landing-system : lando
2019-01-11 03:34:30 +00:00
Ted Mielczarek 70af650a9f bug 1517909 - format build telemetry time correctly when seconds has no fractional component. r=nalexander
It turns out that Python's `datetime.isoformat` method will leave off the
fractional component of seconds if it would be all zeroes, but the voluptuous
`Datetime` validator wants it to be present, so it's possible to hit an error
if you run mach at exactly an integer second.

This patch switches from `isoformat` to `strftime` with an explicit format
string instead.

Differential Revision: https://phabricator.services.mozilla.com/D15981

--HG--
extra : moz-landing-system : lando
2019-01-08 21:29:26 +00:00
Ted Mielczarek fc2a640d8f bug 1517712 - log mach output when test_telemetry.py fails. r=sheehan
Differential Revision: https://phabricator.services.mozilla.com/D15716

--HG--
extra : moz-landing-system : lando
2019-01-08 15:14:51 +00:00
Ted Mielczarek 7f6bbcf435 bug 1517811 - use mozdebug in mach to validate debugger arguments. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D15847

--HG--
extra : moz-landing-system : lando
2019-01-08 16:10:36 +00:00
Ted Mielczarek 5def08dbfb bug 1517244 - Try to log more info during intermittent test_telemetry failure. r=sheehan
Differential Revision: https://phabricator.services.mozilla.com/D15578

--HG--
extra : moz-landing-system : lando
2019-01-02 16:56:12 +00:00
Connor Sheehan 1e603661c4 Bug 1506759: remove `try-except` block which swallows `OSError` r=ted
We have a few bugs filed as intermittent failures all relating
to an `AssertionError` on the return value of this block, which
seems to have a relevant value when `OSError` is thrown. Removing
this will not fix the problem but will at least let us see the
true cause of the failure for debugging and stabilization.

Differential Revision: https://phabricator.services.mozilla.com/D11884

--HG--
extra : moz-landing-system : lando
2018-11-14 16:33:22 +00:00
Ted Mielczarek 54b3bbd1ce bug 1505205 - don't write telemetry for recursive mach command invocations. r=firefox-build-system-reviewers,chmanchester
This change tries to ensure that we don't write telemetry data for mach
commands invoked recursively as part of other mach commands. The intent of
build system telemetry is to only collect data about commands that users are
invoking directly.

There are two ways that we found mach commands can be recursively invoked:
* By running a python subprocess to recursively invoke mach (used in
  `mach bootstrap` to call `mach artifact toolchain`)
* By using `Registrar.dispatch` to delegate to a sub-command (used by many
  build system commands to invoke `mach build`).

The subprocess case is handled here by having mach set a `MACH_MAIN_PID`
environment variable whose value is the current process' pid on startup if it
does not already exist in the environment. Telemetry code then checks that the
value of that variable matches the current pid and skips writing telemetry data
if not.

The dispatch case is handled by making `MachRegistrar` store the current depth
of the command stack and pass it to the `post_dispatch_handler` which will skip
writing telemetry data if depth != 1.

Additionally the `should_skip_dispatch` function in mach_bootstrap is renamed
to `should_skip_telemetry_submission`, which was its original intent. The
combination of checks added in this change should be sufficient for deciding
when to write telemetry data, and we were not collecting telemetry for the set
of mach commands in that function (which included `mach bootstrap`).

In order to facilitate writing a test for the dispatch case this change adds a
`mach python --exec-file` option to execute Python code directly in the context
of the `mach python` command.

Differential Revision: https://phabricator.services.mozilla.com/D11207

--HG--
extra : moz-landing-system : lando
2018-11-10 19:04:30 +00:00
Ted Mielczarek e85df1cdc8 bug 1505325 - fix build telemetry path filtering when cwd is outside of topsrcdir/objdir. r=firefox-build-system-reviewers,chmanchester
The build telemetry code attempts to filter paths to avoid PII from usernames
and other things. It does this by converting every commandline argument to
an absolute path and then making them relative to topsrcdir or topobjdir and
omitting any that fail. This meant that running a mach command with a cwd
outside of the topsrcdir or objdir would omit all arguments since they were
converted to absolute paths from the cwd.

This change fixes this by adding the cwd to the list of paths used to create
relative paths. Additionally we add the user's home directory to that list
to try to avoid usernames sneaking through. Finally, instead of simply
removing these path prefixes, we replace them with sigils: $topsrcdir,
$objdir, $HOME.

Differential Revision: https://phabricator.services.mozilla.com/D11174

--HG--
extra : moz-landing-system : lando
2018-11-10 19:14:44 +00:00
Ted Mielczarek 8e018fdef0 bug 1505325 - add a basic test for build telemetry. r=firefox-build-system-reviewers,chmanchester
This change adds python/mach/mach/test/test_telemetry.py which contains
a simple test that running mach with the build telemetry setting enabled
causes us to write a telemetry file. The test fixture in the file should
make it easy to write additional tests.

A necessary precursor to make the tests work was to change mach_bootstrap's
`should_skip_dispatch` function, which would refuse to write telemetry data
if stdout was not a terminal (which it isn't in the tests) and also in
automation. The latter test is moved to ensure that we don't *submit*
telemetry data from automation, but we can still write it to disk. Machines
in automation should never have the telemetry setting enabled outside of
these tests anyway, so this should not change anything in practice.

Differential Revision: https://phabricator.services.mozilla.com/D11172

--HG--
extra : moz-landing-system : lando
2018-11-10 19:04:05 +00:00
Edwin Gao 9ffeff17f0 Bug 1504550 - error running ./mach wpt --debugger rr --headless --no-manifest-update r=gbrown
Changes:
- under a specific code path such as:
`./mach <test_type> --debugger`
there exists now additional checks for IndexError when attempting to parse the debugger program name.
- print a nicer error message if user failed to properly specify the debugger program name.
- raise exit code of 1 if IndexError is raised.

Others:
- code comments updated to better reflect/describe what the section does.

Differential Revision: https://phabricator.services.mozilla.com/D10987

--HG--
extra : moz-landing-system : lando
2018-11-07 12:47:34 +00:00
Chris Manchester 9b3b733a84 Bug 1497638 - Gather telemetry for mach commands other than build. r=ted,firefox-build-system-reviewers,nalexander
Differential Revision: https://phabricator.services.mozilla.com/D10177

--HG--
extra : moz-landing-system : lando
2018-10-31 20:03:56 +00:00
Edwin Gao 4c107f8236 Bug 1291335 - Check mozconfig for --disable-tests when running mach test commands r=gbrown
Behavior changes:

- instead of reading the mozconfig file, it now instantiates an instance of the build object.
- safe checking methods are used to access attributes to prevent errors on automation environment.
- better mach command parsing is performed with handler category instead of error-prone argv parsing.


Other changes:

- docstring for testing/xpcshell/runxpcshelltests.py::buildTestList() added and modernized.
- added clause that if length of tests gathered is 0, mach exits with an error code of 1.

Differential Revision: https://phabricator.services.mozilla.com/D7133

--HG--
extra : moz-landing-system : lando
2018-10-03 15:40:48 +00:00
Jay Kamat 245ac54f65 Bug 1493345 Fix improper usage of blessings.tigetstr r=ted,firefox-build-system-reviewers
blessings.tigetstr is not part of its API. It happens to work because
blessings imports curses using 'from curses import tigetstr'.

Instead, we can just use terminal.normal, which contains the string we were
going to get anyway.

See https://github.com/erikrose/blessings/pull/138 for more information.

Let me know if there's a better way of resolving this. Hopefully with this +
the patch I submitted to blessings (https://github.com/erikrose/blessings/pull/137)
firefox will build fine with TERM improperly set.

Differential Revision: https://phabricator.services.mozilla.com/D5377

--HG--
extra : moz-landing-system : lando
2018-10-02 18:36:30 +00:00
Edwin Gao d7986ad99a Bug 1305695 - ./mach test --debugger=<debugger> doesn't fail if <debugger> isn't available r=gbrown
- added checkers in python/mach/mach/main.py prior to calling registrar.py.
- added internal function to check if specified debugger is installed.
- support both ./mach test <test_name> and ./mach <test_category> styles.

Differential Revision: https://phabricator.services.mozilla.com/D7234

--HG--
extra : moz-landing-system : lando
2018-10-01 22:06:54 +00:00
shindli 6ba91671cb Backed out changeset 05df95ba3a98 (bug 1305695) for ES lint failures CLOSED TREE 2018-10-02 00:00:23 +03:00
Edwin Gao 63180f5b60 Bug 1305695 - ./mach test --debugger=<debugger> doesn't fail if <debugger> isn't available r=gbrown
- added checkers in python/mach/mach/main.py prior to calling registrar.py.
- added internal function to check if specified debugger is installed.
- support both ./mach test <test_name> and ./mach <test_category> styles.

Differential Revision: https://phabricator.services.mozilla.com/D7234

--HG--
extra : moz-landing-system : lando
2018-10-01 18:03:06 +00:00
Ted Mielczarek 3028fb8bdb bug 1237610 - don't call post_dispatch_handler when using debug-command. r=gps
MozReview-Commit-ID: 4UG6RH4b6tZ

Differential Revision: https://phabricator.services.mozilla.com/D4596

--HG--
extra : rebase_source : a06ef350840b059b2ef9eaea8010085e41d5dd50
2018-05-16 12:56:39 -04:00
Chris Manchester 7edeeaa646 Bug 1475058 - Send SIGINT when interrupting interactive in mach before sending SIGKILL. r=mshal
MozReview-Commit-ID: 2XxLyNi1ZuS

--HG--
extra : rebase_source : d91eed728446219da6be78e310b1a12b597a0d99
2018-07-12 11:50:48 -07:00
Andrew Halberstadt 9435736ade Bug 1471620 - Skip python-tests locally that don't run with python 3 in CI r=davehunt
This will make sure that when running |mach python-test --python 3| locally,
we only run the tests that also run in CI with python 3 (and therefore pass
presumably).

MozReview-Commit-ID: 3OBr9yLSlSq

--HG--
extra : rebase_source : 456340d0ecdddf1078f2b5b4ebb1eddf3813b26a
2018-06-27 11:10:02 -04:00
Dave Hunt c65268bd7a Bug 1388013 - Support running |mach python-test| against Python 3 using pipenv; r=ahal
This patch allows executing |mach python-test| against Python 3 by specifying the optional |--three| command line option. When this option is present, pipenv will be used to manage a virtual environment using Python 3 and attempt to run the tests. When it is not present, pipenv will not be used, and everything will work as it did before this patch.

My original plan was to use pipenv regardless of the target version of Python, however I encountered several issues running some of the tests against our Python packages. Once all tests have been patched to run against Python 3, then we should be able to use pipenv when running them against Python 2.

Note that this patch allows tests to run against Python 3, but there are plenty of issues preventing them from passing. With this patch in place we can start to add Python 3 support to our packages and have the tests running in CI to ensure we don't regress back to just supporting Python 2.

MozReview-Commit-ID: BuU5gZK83hL


IHG: changed taskcluster/ci/source-test/python.yml

--HG--
extra : rebase_source : ca2b15d905f7a5c895a2fd8916144841f5d205de
2018-05-03 10:34:22 +01:00
Andreea Pavel dd5cd1d832 Backed out 3 changesets (bug 1388013) for build bustages e.g. ../python/mozbuild/mozpack/test/test_files.py on a CLOSED TREE
Backed out changeset eea857170a41 (bug 1388013)
Backed out changeset c55bfefbd4e1 (bug 1388013)
Backed out changeset 3a163da2b21b (bug 1388013)
2018-05-31 11:48:19 +03:00
Dave Hunt 18568a8c94 Bug 1388013 - Support running |mach python-test| against Python 3 using pipenv; r=ahal
This patch allows executing |mach python-test| against Python 3 by specifying the optional |--three| command line option. When this option is present, pipenv will be used to manage a virtual environment using Python 3 and attempt to run the tests. When it is not present, pipenv will not be used, and everything will work as it did before this patch.

My original plan was to use pipenv regardless of the target version of Python, however I encountered several issues running some of the tests against our Python packages. Once all tests have been patched to run against Python 3, then we should be able to use pipenv when running them against Python 2.

Note that this patch allows tests to run against Python 3, but there are plenty of issues preventing them from passing. With this patch in place we can start to add Python 3 support to our packages and have the tests running in CI to ensure we don't regress back to just supporting Python 2.

MozReview-Commit-ID: BuU5gZK83hL


IHG: changed taskcluster/ci/source-test/python.yml

--HG--
extra : rebase_source : e1a64c0ffa8fe5cce71a041579601d4a72e37779
2018-05-03 10:34:22 +01:00
Chris Manchester 3722bcaf82 Bug 1453426 - Kill invoked process on keyboard interrupt in mach build. r=mshal
MozReview-Commit-ID: IdnVrK6Gqtk

--HG--
extra : rebase_source : 2599a6c236b2c624d74f399ff3b5af3e7a574dc8
2018-04-17 15:30:27 -07:00
David Major 9b78fd3f22 Bug 1447750 - Point MACH_ERROR's URL at the new Bugzilla component r=nalexander 2018-03-21 11:09:00 +02:00
Tarek Ziadé 0081c14e07 Bug 1401879 - sort mach-commands output - r=gps
MozReview-Commit-ID: KgocEmTy4wR

--HG--
extra : rebase_source : 211c03cd533abd1325f6e671523fdd7b5ee8b824
2018-03-21 20:27:42 +01:00
Andrew Halberstadt f354075c7a Bug 1434430 - [flake8] Fix blank 'except' statements r=rwood
This is a new issue that gets linted with flake8 3.5.0. Basically you should
never use a blank except: statement.

This will catch all exceptions, including KeyboardInterrupt and SystemExit
(which is likely not intended). If a catch all is needed, use
`except: Exception`.  If you *really* mean to also catch KeyboardInterrupt et
al, use `except: BaseException`.

Of course, being specific is often better than a catch all.

MozReview-Commit-ID: FKx80MLO4RN

--HG--
extra : rebase_source : 7c74a7d0d81f2c984b47aff3a0ee3448b791177b
2018-01-31 14:32:08 -05:00
Gregory Szorc b3b7dfcfef Bug 1415614 - Add an API to log all structured messages; r=mshal
Currently, marking a logger as a structured logger will require a
subsequent function call in order for the logger to be hooked up
to active handlers. This behavior is not intuitive and makes it
easy to not have handlers for newly-registered loggers. This means
messages may not be logged anywhere.

In addition, we have to manually specify which named loggers to
enable structured logging for. This can be annoying.

We change the behavior of register_structured_logger() to
automatically add existing terminal and json handlers to the
logger being marked as structured.

We also introduce an API to enable structured logging for all
loggers. Existing consumers of registered_structured_logger()
in mozbuild have been updated to use this API. A new consumer
has been added for the `mach configure` command because it should
have been there before.

We stop short of making enable_all_structured_loggers() the default.
This is because various commands interact with the log manager in
ways that will result in duplicate logging of messages and
dropping of structured messages. There is a bit of a rabbit hole
here and addressing it can be done as a follow-up.

MozReview-Commit-ID: 1aU6eJvTSMP

--HG--
extra : rebase_source : 2a0a569b378cc3083b55fc7076b291abdfb7453f
2017-11-09 15:09:52 -08:00
Gregory Szorc 6c9c35a19d Bug 1415614 - Don't assign mach logger to instance variable; r=nalexander
We don't use this attribute outside of this function. Besides, you can
easily obtain a handle on the logger by calling
``logging.getLogger('mach')``.

MozReview-Commit-ID: 41vdn6McowW

--HG--
extra : rebase_source : dca383e5f5b770fa3adb09d753897633258302a1
2017-11-08 14:28:19 -08:00
Steve Armand d11ffd18db Bug 1399989 - Add python/mach to flake8 linter. r=gps
MozReview-Commit-ID: KKnBgYFwpfT

--HG--
extra : rebase_source : 4e4b3453a91970366dba0073853ad3ab62738c81
2017-09-17 22:41:17 -04:00
Andrew Halberstadt d3806e8077 Bug 1289444 - Forward extra arguments in |mach test| to the underlying test commands, r=chmanchester
MozReview-Commit-ID: 631K2n0wB1a

--HG--
extra : rebase_source : d5aa8c59e16e811915ff24100fd1fe7a49604304
2017-08-29 16:20:47 -04:00
Dustin J. Mitchell 53df6a181b Bug 1390968: python-3 compatibility for python/**/*.py; r=Alex_Gaynor,gps
This passes `python3 -mcompileall`.  Changes:

 * use `0o` prefix for octal literals
 * print as a function
 * except .. as
 * use six.reraise to replace a multi-argument raise statement
 * use six.string_types and six.moves.configparser
 * remove uses of `L` suffix for long integers

MozReview-Commit-ID: KLaYRNHGpay

--HG--
extra : rebase_source : 6ca1b5447cd28eff8d9f2805add6a0f07e8b4c63
2017-08-28 21:31:30 +00:00
Andrew Halberstadt 508e9aad6b Bug 1393590 - [mach] Use description field for settings instead of gettext locales, r=gps
This preserves ./mach settings' --list option. If --list is passed in, we call splitlines()
on the description and print only the first line. The full multi-line description will be
printed otherwise.

This also displays the type and/or choices of the option as appropriate.

MozReview-Commit-ID: 7UMsN9qslWt

--HG--
extra : rebase_source : 4bc9554d8652e02e290c6a190634f1a72cdbadc3
2017-08-24 16:17:40 -04:00
Andrew Halberstadt b8511feb50 Bug 1391675 - [mach] Allow commands to have both a parser and subcommands, r=gps
We currently raise if we detect a command has both the `parser` attribute and a subcommand
at the same time, but as far as I can tell, there's no good reason to do this. Handling a
parser + subcommands seems to work exactly how you would expect. Furthermore, it isn't an
error to have subcommands + @CommandArgument, so it doesn't make sense that we're allowing
one but not the other.

This change solves an (admittedly unique) use case I'm trying to build into |mach try|. There
are N subcommands that all support a --save and --load style argument. So, e.g, we might have:

./mach try syntax --save foo
./mach try fuzzy --save bar

The main command will have the ability to detect which subcommand a saved value was generated
from and automatically dispatch to it. So this will work:

./mach try --load foo  # dispatches to the syntax subcommand
./mach try --load bar  # dispatches to the fuzzy subcommand

In order to share the --save/--load arguments across the main command + subcommands, we need
to set the parser attribute.



MozReview-Commit-ID: KmXRj8TBvYK

--HG--
extra : rebase_source : cbf1e402a080913709a34430274ae3191821dd72
2017-08-17 11:10:48 -04:00
Gregory Szorc 3088419b32 Bug 1392886 - Explicit error type when a mach command file doesn't exist; r=mshal
This will facilitate handling this error condition specially.

Some unused imports were also removed.

MozReview-Commit-ID: 4zxVDgE7NxU

--HG--
extra : rebase_source : c4d0dd96629e028ce8a83215564a8d865e4b4b3d
2017-08-22 20:29:01 -07:00
Jonas Finnemann Jensen 25d89ec12e Bug 1387307 - Add FailedCommandError to mach r=gps
MozReview-Commit-ID: 8brtYHruEi4
***
Fix ups mach error

MozReview-Commit-ID: 5mqQNqZqLzc

--HG--
extra : rebase_source : 4fb587e8eb9441f2857c8960c8f6b9ce841c6e55
2017-08-08 12:10:10 -07:00
Brian Grinstead d22141a17f Bug 1172574 - Allow for setting prefs in mach run for scratch_user;r=gps
Prefs can be set with `./mach run --setpref foo=bar` or in the ~/.mozbuild/machrc file as:

  [runprefs]
  foo=bar

MozReview-Commit-ID: HO3tdFi9ffi

--HG--
extra : rebase_source : 3c2e6f33567448c19defafb656e6cb9f3a729391
2017-07-28 15:38:22 -07:00
Andrew Halberstadt 2f253251a9 Bug 1381802 - [mach] Allow subcommands to use the 'parser' argument, r=gps
This allows subcommands to use external argument parsers.

MozReview-Commit-ID: 7TkbTff0Tv8

--HG--
extra : rebase_source : a1c245efa7ac7b28b974534b4cd2727c96f9219d
2017-07-18 08:53:13 -04:00
Andrew Halberstadt f64710a364 Bug 1381802 - [mach] Ensure subcommand help is displayed whenever a subcommand and --help are specified, r=gps
After this patch, the following will all display the subcommand help where they previously displayed
the command help:

    $ mach help <command> <subcommand>
    $ mach <command> --help <subcommand>
    $ mach <command> <subcommand> --help

The command help will still be shown for:

    $ mach help <command>
    $ mach <command> --help

MozReview-Commit-ID: 7EsVblnCaFM

--HG--
extra : rebase_source : 2a1d289d56164366ce140fa653adec93f56be067
2017-07-18 08:42:41 -04:00
Michael Layzell fb7949544e Bug 1347290 - Set sgr0 to '' if blessings.tigetstr('sgr0') returns None, r=gps
MozReview-Commit-ID: vP4izM2RwP
2017-04-06 17:44:30 -07:00