mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
# reporootlog.py - log the repo root
|
|
#
|
|
# Copyright 2016 Facebook, Inc.
|
|
#
|
|
# This software may be used and distributed according to the terms of the
|
|
# GNU General Public License version 2 or any later version.
|
|
|
|
"""this extension logs different pieces of information that will be used
|
|
by SCM wrappers
|
|
|
|
::
|
|
|
|
[logging]
|
|
# list of config options to log
|
|
configoptions = section1.option1,section2.option2
|
|
|
|
"""
|
|
|
|
import os
|
|
from mercurial import (
|
|
extensions,
|
|
localrepo,
|
|
)
|
|
|
|
def _localrepoinit(orig, self, baseui, path=None, create=False):
|
|
orig(self, baseui, path, create)
|
|
reponame = self.ui.config('paths', 'default')
|
|
if reponame:
|
|
reponame = os.path.basename(reponame)
|
|
configoptstolog = self.ui.configlist('logging', 'configoptions')
|
|
kwargs = {'repo': reponame}
|
|
for option in configoptstolog:
|
|
splitted = option.split('.')
|
|
if len(splitted) != 2:
|
|
continue
|
|
section, name = splitted
|
|
value = self.ui.config(section, name)
|
|
if value is not None:
|
|
kwargs[name] = value
|
|
|
|
obsstore_size = 0
|
|
try:
|
|
obsstore_size = self.svfs.stat('obsstore').st_size
|
|
except Exception:
|
|
# just ignore exception, it's better than failing the whole command
|
|
pass
|
|
|
|
kwargs['obsstore_size'] = obsstore_size
|
|
|
|
self.ui.log("logginghelper",
|
|
"", # ui.log requires a format string as args[0].
|
|
**kwargs)
|
|
|
|
def uisetup(ui):
|
|
extensions.wrapfunction(localrepo.localrepository,
|
|
'__init__', _localrepoinit)
|