mirror of
https://github.com/ManchildProductions/UXP-Fixed.git
synced 2026-06-14 03:39:12 +00:00
54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, # You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
from __future__ import absolute_import, print_function, unicode_literals
|
|
|
|
from mach.decorators import (
|
|
CommandProvider,
|
|
Command,
|
|
CommandArgument,
|
|
)
|
|
|
|
|
|
@CommandProvider
|
|
class BuiltinCommands(object):
|
|
def __init__(self, context):
|
|
self.context = context
|
|
|
|
@property
|
|
def command_keys(self):
|
|
# NOTE 'REMOVED' is a function in testing/mochitest/mach_commands.py
|
|
return (k for k, v in self.context.commands.command_handlers.items()
|
|
if not v.conditions or v.conditions[0].__name__ != 'REMOVED')
|
|
|
|
@Command('mach-commands', category='misc',
|
|
description='List all mach commands.')
|
|
def commands(self):
|
|
print("\n".join(self.command_keys))
|
|
|
|
@Command('mach-debug-commands', category='misc',
|
|
description='Show info about available mach commands.')
|
|
@CommandArgument('match', metavar='MATCH', default=None, nargs='?',
|
|
help='Only display commands containing given substring.')
|
|
def debug_commands(self, match=None):
|
|
import inspect
|
|
|
|
handlers = self.context.commands.command_handlers
|
|
for command in sorted(self.command_keys):
|
|
if match and match not in command:
|
|
continue
|
|
|
|
handler = handlers[command]
|
|
cls = handler.cls
|
|
method = getattr(cls, getattr(handler, 'method'))
|
|
|
|
print(command)
|
|
print('=' * len(command))
|
|
print('')
|
|
print('File: %s' % inspect.getsourcefile(method))
|
|
print('Class: %s' % cls.__name__)
|
|
print('Method: %s' % handler.method)
|
|
print('')
|
|
|