##// END OF EJS Templates
version: show enabled extensions (issue4209)...
anatoly techtonik -
r21848:ecdbbb6e default
parent child Browse files
Show More
@@ -14,6 +14,7 b' import hg, scmutil, util, revlog, copies'
14 import patch, help, encoding, templatekw, discovery
14 import patch, help, encoding, templatekw, discovery
15 import archival, changegroup, cmdutil, hbisect
15 import archival, changegroup, cmdutil, hbisect
16 import sshserver, hgweb, commandserver
16 import sshserver, hgweb, commandserver
17 import extensions
17 from hgweb import server as hgweb_server
18 from hgweb import server as hgweb_server
18 import merge as mergemod
19 import merge as mergemod
19 import minirst, revset, fileset
20 import minirst, revset, fileset
@@ -6016,3 +6017,15 b' def version_(ui):'
6016 "There is NO\nwarranty; "
6017 "There is NO\nwarranty; "
6017 "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
6018 "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
6018 ))
6019 ))
6020
6021 ui.note(_("\nEnabled extensions:\n\n"))
6022 if ui.verbose:
6023 # format names and versions into columns
6024 names = []
6025 vers = []
6026 for name, module in extensions.extensions():
6027 names.append(name)
6028 vers.append(extensions.moduleversion(module))
6029 maxnamelen = max(len(n) for n in names)
6030 for i, name in enumerate(names):
6031 ui.write(" %-*s %s\n" % (maxnamelen, name, vers[i]))
@@ -367,3 +367,16 b' def enabled(shortname=True):'
367 exts[ename] = doc.splitlines()[0].strip()
367 exts[ename] = doc.splitlines()[0].strip()
368
368
369 return exts
369 return exts
370
371 def moduleversion(module):
372 '''return version information from given module as a string'''
373 if (util.safehasattr(module, 'getversion')
374 and callable(module.getversion)):
375 version = module.getversion()
376 elif util.safehasattr(module, '__version__'):
377 version = module.__version__
378 else:
379 version = ''
380 if isinstance(version, (list, tuple)):
381 version = '.'.join(str(o) for o in version)
382 return version
General Comments 0
You need to be logged in to leave comments. Login now