manifest: Only support -o option on XML formatted manifest
If the manifest isn't a single file format manifest, the -o option
makes no sense, as you cannot export multiple files to a single
stream for display or redirection.
Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/subcmds/manifest.py b/subcmds/manifest.py
index 4415b99..551b13b 100644
--- a/subcmds/manifest.py
+++ b/subcmds/manifest.py
@@ -17,6 +17,7 @@
import sys
from command import PagedCommand
+from manifest_xml import XmlManifest
def _doc(name):
r = os.path.dirname(__file__)
@@ -31,7 +32,7 @@
common = False
helpSummary = "Manifest inspection utility"
helpUsage = """
-%prog [-o {-|NAME.xml} [-r]]
+%prog [options]
"""
_xmlHelp = """
@@ -50,13 +51,14 @@
return help
def _Options(self, p):
- p.add_option('-r', '--revision-as-HEAD',
- dest='peg_rev', action='store_true',
- help='Save revisions as current HEAD')
- p.add_option('-o', '--output-file',
- dest='output_file',
- help='File to save the manifest to',
- metavar='-|NAME.xml')
+ if isinstance(self.manifest, XmlManifest):
+ p.add_option('-r', '--revision-as-HEAD',
+ dest='peg_rev', action='store_true',
+ help='Save revisions as current HEAD')
+ p.add_option('-o', '--output-file',
+ dest='output_file',
+ help='File to save the manifest to',
+ metavar='-|NAME.xml')
def _Output(self, opt):
if opt.output_file == '-':
@@ -73,9 +75,10 @@
if args:
self.Usage()
- if opt.output_file is not None:
- self._Output(opt)
- return
+ if isinstance(self.manifest, XmlManifest) \
+ and opt.output_file is not None:
+ self._Output(opt)
+ return
print >>sys.stderr, 'error: no operation to perform'
print >>sys.stderr, 'error: see repo help manifest'