mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
gitc: Improve help visibility
This improves the visiblity of gitc-init if we can get the gitc config, and hides it otherwise. Change-Id: I82830b0b07c311e8c74397ba79eb4c361f8b6fb5
This commit is contained in:
parent
2487cb7b2c
commit
9ff2ece6ab
@ -230,3 +230,8 @@ class MirrorSafeCommand(object):
|
|||||||
"""Command permits itself to run within a mirror,
|
"""Command permits itself to run within a mirror,
|
||||||
and does not require a working directory.
|
and does not require a working directory.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
class RequiresGitcCommand(object):
|
||||||
|
"""Command that requires GITC to be available, but does
|
||||||
|
not require the local client to be a GITC client.
|
||||||
|
"""
|
||||||
|
6
main.py
6
main.py
@ -42,6 +42,7 @@ from git_command import git, GitCommand
|
|||||||
from git_config import init_ssh, close_ssh
|
from git_config import init_ssh, close_ssh
|
||||||
from command import InteractiveCommand
|
from command import InteractiveCommand
|
||||||
from command import MirrorSafeCommand
|
from command import MirrorSafeCommand
|
||||||
|
from command import RequiresGitcCommand
|
||||||
from subcmds.version import Version
|
from subcmds.version import Version
|
||||||
from editor import Editor
|
from editor import Editor
|
||||||
from error import DownloadError
|
from error import DownloadError
|
||||||
@ -143,6 +144,11 @@ class _Repo(object):
|
|||||||
file=sys.stderr)
|
file=sys.stderr)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
if isinstance(cmd, RequiresGitcCommand) and not gitc_utils.get_gitc_manifest_dir():
|
||||||
|
print("fatal: '%s' requires GITC to be available" % name,
|
||||||
|
file=sys.stderr)
|
||||||
|
return 1
|
||||||
|
|
||||||
try:
|
try:
|
||||||
copts, cargs = cmd.OptionParser.parse_args(argv)
|
copts, cargs = cmd.OptionParser.parse_args(argv)
|
||||||
copts = cmd.ReadEnvironmentOptions(copts)
|
copts = cmd.ReadEnvironmentOptions(copts)
|
||||||
|
17
repo
17
repo
@ -214,6 +214,7 @@ group.add_option('--config-name',
|
|||||||
help='Always prompt for name/e-mail')
|
help='Always prompt for name/e-mail')
|
||||||
|
|
||||||
def _GitcInitOptions(init_optparse):
|
def _GitcInitOptions(init_optparse):
|
||||||
|
init_optparse.set_usage("repo gitc-init -u url -c client [options]")
|
||||||
g = init_optparse.add_option_group('GITC options')
|
g = init_optparse.add_option_group('GITC options')
|
||||||
g.add_option('-f', '--manifest-file',
|
g.add_option('-f', '--manifest-file',
|
||||||
dest='manifest_file',
|
dest='manifest_file',
|
||||||
@ -272,9 +273,12 @@ def _Init(args, gitc_init=False):
|
|||||||
if gitc_init:
|
if gitc_init:
|
||||||
gitc_manifest_dir = get_gitc_manifest_dir()
|
gitc_manifest_dir = get_gitc_manifest_dir()
|
||||||
if not gitc_manifest_dir:
|
if not gitc_manifest_dir:
|
||||||
_print('error: GITC filesystem is not running. Exiting...',
|
_print('fatal: GITC filesystem is not available. Exiting...',
|
||||||
file=sys.stderr)
|
file=sys.stderr)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
if not opt.gitc_client:
|
||||||
|
_print('fatal: GITC client (-c) is required.', file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
client_dir = os.path.join(gitc_manifest_dir, opt.gitc_client)
|
client_dir = os.path.join(gitc_manifest_dir, opt.gitc_client)
|
||||||
if not os.path.exists(client_dir):
|
if not os.path.exists(client_dir):
|
||||||
os.makedirs(client_dir)
|
os.makedirs(client_dir)
|
||||||
@ -681,6 +685,10 @@ def _ParseArguments(args):
|
|||||||
|
|
||||||
|
|
||||||
def _Usage():
|
def _Usage():
|
||||||
|
gitc_usage = ""
|
||||||
|
if get_gitc_manifest_dir():
|
||||||
|
gitc_usage = " gitc-init Initialize a GITC Client.\n"
|
||||||
|
|
||||||
_print(
|
_print(
|
||||||
"""usage: repo COMMAND [ARGS]
|
"""usage: repo COMMAND [ARGS]
|
||||||
|
|
||||||
@ -689,7 +697,8 @@ repo is not yet installed. Use "repo init" to install it here.
|
|||||||
The most commonly used repo commands are:
|
The most commonly used repo commands are:
|
||||||
|
|
||||||
init Install repo in the current working directory
|
init Install repo in the current working directory
|
||||||
help Display detailed help on a command
|
""" + gitc_usage +
|
||||||
|
""" help Display detailed help on a command
|
||||||
|
|
||||||
For access to the full online help, install repo ("repo init").
|
For access to the full online help, install repo ("repo init").
|
||||||
""", file=sys.stderr)
|
""", file=sys.stderr)
|
||||||
@ -701,6 +710,10 @@ def _Help(args):
|
|||||||
if args[0] == 'init':
|
if args[0] == 'init':
|
||||||
init_optparse.print_help()
|
init_optparse.print_help()
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
elif args[0] == 'gitc-init':
|
||||||
|
_GitcInitOptions(init_optparse)
|
||||||
|
init_optparse.print_help()
|
||||||
|
sys.exit(0)
|
||||||
else:
|
else:
|
||||||
_print("error: '%s' is not a bootstrap command.\n"
|
_print("error: '%s' is not a bootstrap command.\n"
|
||||||
' For access to online help, install repo ("repo init").'
|
' For access to online help, install repo ("repo init").'
|
||||||
|
@ -18,10 +18,11 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
import gitc_utils
|
import gitc_utils
|
||||||
|
from command import RequiresGitcCommand
|
||||||
from subcmds import init
|
from subcmds import init
|
||||||
|
|
||||||
|
|
||||||
class GitcInit(init.Init):
|
class GitcInit(init.Init, RequiresGitcCommand):
|
||||||
common = True
|
common = True
|
||||||
helpSummary = "Initialize a GITC Client."
|
helpSummary = "Initialize a GITC Client."
|
||||||
helpUsage = """
|
helpUsage = """
|
||||||
|
@ -19,7 +19,8 @@ import sys
|
|||||||
from formatter import AbstractFormatter, DumbWriter
|
from formatter import AbstractFormatter, DumbWriter
|
||||||
|
|
||||||
from color import Coloring
|
from color import Coloring
|
||||||
from command import PagedCommand, MirrorSafeCommand
|
from command import PagedCommand, MirrorSafeCommand, RequiresGitcCommand
|
||||||
|
import gitc_utils
|
||||||
|
|
||||||
class Help(PagedCommand, MirrorSafeCommand):
|
class Help(PagedCommand, MirrorSafeCommand):
|
||||||
common = False
|
common = False
|
||||||
@ -54,9 +55,17 @@ Displays detailed usage information about a command.
|
|||||||
def _PrintCommonCommands(self):
|
def _PrintCommonCommands(self):
|
||||||
print('usage: repo COMMAND [ARGS]')
|
print('usage: repo COMMAND [ARGS]')
|
||||||
print('The most commonly used repo commands are:')
|
print('The most commonly used repo commands are:')
|
||||||
|
|
||||||
|
def gitc_supported(cmd):
|
||||||
|
if not isinstance(cmd, RequiresGitcCommand):
|
||||||
|
return True
|
||||||
|
if gitc_utils.get_gitc_manifest_dir():
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
commandNames = list(sorted([name
|
commandNames = list(sorted([name
|
||||||
for name, command in self.commands.items()
|
for name, command in self.commands.items()
|
||||||
if command.common]))
|
if command.common and gitc_supported(command)]))
|
||||||
|
|
||||||
maxlen = 0
|
maxlen = 0
|
||||||
for name in commandNames:
|
for name in commandNames:
|
||||||
|
Loading…
Reference in New Issue
Block a user