mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-24 20:08:10 +01:00
CLI/git: rename environment variables.
Although the code required to support both new and old environment variables is small, it complicates the semantics of configuration, and make the documentation harder to follow.
This commit is contained in:
parent
a85c82f99a
commit
b010584163
2 changed files with 17 additions and 24 deletions
|
@ -18,13 +18,6 @@
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Manage notmuch tags with Git
|
Manage notmuch tags with Git
|
||||||
|
|
||||||
Environment variables:
|
|
||||||
|
|
||||||
* NMBGIT specifies the location of the git repository used by nmbug.
|
|
||||||
If not specified $HOME/.nmbug is used.
|
|
||||||
* NMBPREFIX specifies the prefix in the notmuch database for tags of
|
|
||||||
interest to nmbug. If not specified 'notmuch::' is used.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
@ -50,7 +43,7 @@ _LOG = _logging.getLogger('nmbug')
|
||||||
_LOG.setLevel(_logging.WARNING)
|
_LOG.setLevel(_logging.WARNING)
|
||||||
_LOG.addHandler(_logging.StreamHandler())
|
_LOG.addHandler(_logging.StreamHandler())
|
||||||
|
|
||||||
NMBGIT = None
|
NOTMUCH_GIT_DIR = None
|
||||||
TAG_PREFIX = None
|
TAG_PREFIX = None
|
||||||
|
|
||||||
_HEX_ESCAPE_REGEX = _re.compile('%[0-9A-F]{2}')
|
_HEX_ESCAPE_REGEX = _re.compile('%[0-9A-F]{2}')
|
||||||
|
@ -198,7 +191,7 @@ def _spawn(args, input=None, additional_env=None, wait=False, stdin=None,
|
||||||
|
|
||||||
|
|
||||||
def _git(args, **kwargs):
|
def _git(args, **kwargs):
|
||||||
args = ['git', '--git-dir', NMBGIT] + list(args)
|
args = ['git', '--git-dir', NOTMUCH_GIT_DIR] + list(args)
|
||||||
return _spawn(args=args, **kwargs)
|
return _spawn(args=args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
@ -266,7 +259,7 @@ def clone(repository):
|
||||||
with _tempfile.TemporaryDirectory(prefix='nmbug-clone.') as workdir:
|
with _tempfile.TemporaryDirectory(prefix='nmbug-clone.') as workdir:
|
||||||
_spawn(
|
_spawn(
|
||||||
args=[
|
args=[
|
||||||
'git', 'clone', '--no-checkout', '--separate-git-dir', NMBGIT,
|
'git', 'clone', '--no-checkout', '--separate-git-dir', NOTMUCH_GIT_DIR,
|
||||||
repository, workdir],
|
repository, workdir],
|
||||||
wait=True)
|
wait=True)
|
||||||
_git(args=['config', '--unset', 'core.worktree'], wait=True, expect=(0, 5))
|
_git(args=['config', '--unset', 'core.worktree'], wait=True, expect=(0, 5))
|
||||||
|
@ -358,7 +351,7 @@ def init(remote=None):
|
||||||
This wraps 'git init' with a few extra steps to support subsequent
|
This wraps 'git init' with a few extra steps to support subsequent
|
||||||
status and commit commands.
|
status and commit commands.
|
||||||
"""
|
"""
|
||||||
_spawn(args=['git', '--git-dir', NMBGIT, 'init', '--bare'], wait=True)
|
_spawn(args=['git', '--git-dir', NOTMUCH_GIT_DIR, 'init', '--bare'], wait=True)
|
||||||
_git(args=['config', 'core.logallrefupdates', 'true'], wait=True)
|
_git(args=['config', 'core.logallrefupdates', 'true'], wait=True)
|
||||||
# create an empty blob (e69de29bb2d1d6434b8b29ae775ad8c2e48c5391)
|
# create an empty blob (e69de29bb2d1d6434b8b29ae775ad8c2e48c5391)
|
||||||
_git(args=['hash-object', '-w', '--stdin'], input='', wait=True)
|
_git(args=['hash-object', '-w', '--stdin'], input='', wait=True)
|
||||||
|
@ -366,7 +359,7 @@ def init(remote=None):
|
||||||
args=[
|
args=[
|
||||||
'commit', '--allow-empty', '-m', 'Start a new nmbug repository'
|
'commit', '--allow-empty', '-m', 'Start a new nmbug repository'
|
||||||
],
|
],
|
||||||
additional_env={'GIT_WORK_TREE': NMBGIT},
|
additional_env={'GIT_WORK_TREE': NOTMUCH_GIT_DIR},
|
||||||
wait=True)
|
wait=True)
|
||||||
|
|
||||||
|
|
||||||
|
@ -589,7 +582,7 @@ def get_status():
|
||||||
|
|
||||||
def _index_tags():
|
def _index_tags():
|
||||||
"Write notmuch tags to the nmbug.index."
|
"Write notmuch tags to the nmbug.index."
|
||||||
path = _os.path.join(NMBGIT, 'nmbug.index')
|
path = _os.path.join(NOTMUCH_GIT_DIR, 'nmbug.index')
|
||||||
query = ' '.join('tag:"{tag}"'.format(tag=tag) for tag in get_tags())
|
query = ' '.join('tag:"{tag}"'.format(tag=tag) for tag in get_tags())
|
||||||
prefix = '+{0}'.format(_ENCODED_TAG_PREFIX)
|
prefix = '+{0}'.format(_ENCODED_TAG_PREFIX)
|
||||||
_git(
|
_git(
|
||||||
|
@ -708,7 +701,7 @@ if __name__ == '__main__':
|
||||||
help='Git repository to operate on.')
|
help='Git repository to operate on.')
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-p', '--tag-prefix', metavar='PREFIX',
|
'-p', '--tag-prefix', metavar='PREFIX',
|
||||||
default = _os.getenv('NMBPREFIX', 'notmuch::'),
|
default = _os.getenv('NOTMUCH_GIT_PREFIX', 'notmuch::'),
|
||||||
help='Prefix of tags to operate on.')
|
help='Prefix of tags to operate on.')
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-l', '--log-level',
|
'-l', '--log-level',
|
||||||
|
@ -821,13 +814,13 @@ if __name__ == '__main__':
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.git_dir:
|
if args.git_dir:
|
||||||
NMBGIT = args.git_dir
|
NOTMUCH_GIT_DIR = args.git_dir
|
||||||
else:
|
else:
|
||||||
NMBGIT = _os.path.expanduser(
|
NOTMUCH_GIT_DIR = _os.path.expanduser(
|
||||||
_os.getenv('NMBGIT', _os.path.join('~', '.nmbug')))
|
_os.getenv('NOTMUCH_GIT_DIR', _os.path.join('~', '.nmbug')))
|
||||||
_NMBGIT = _os.path.join(NMBGIT, '.git')
|
_NOTMUCH_GIT_DIR = _os.path.join(NOTMUCH_GIT_DIR, '.git')
|
||||||
if _os.path.isdir(_NMBGIT):
|
if _os.path.isdir(_NOTMUCH_GIT_DIR):
|
||||||
NMBGIT = _NMBGIT
|
NOTMUCH_GIT_DIR = _NOTMUCH_GIT_DIR
|
||||||
|
|
||||||
TAG_PREFIX = args.tag_prefix
|
TAG_PREFIX = args.tag_prefix
|
||||||
_ENCODED_TAG_PREFIX = _hex_quote(TAG_PREFIX, safe='+@=,') # quote ':'
|
_ENCODED_TAG_PREFIX = _hex_quote(TAG_PREFIX, safe='+@=,') # quote ':'
|
||||||
|
@ -837,7 +830,7 @@ if __name__ == '__main__':
|
||||||
_LOG.setLevel(level)
|
_LOG.setLevel(level)
|
||||||
|
|
||||||
# for test suite
|
# for test suite
|
||||||
for var in ['NMBGIT', 'NMBPREFIX', 'NOTMUCH_PROFILE', 'NOTMUCH_CONFIG' ]:
|
for var in ['NOTMUCH_GIT_DIR', 'NOTMUCH_GIT_PREFIX', 'NOTMUCH_PROFILE', 'NOTMUCH_CONFIG' ]:
|
||||||
_LOG.debug('env {:s} = {:s}'.format(var, _os.getenv(var,'%None%')))
|
_LOG.debug('env {:s} = {:s}'.format(var, _os.getenv(var,'%None%')))
|
||||||
|
|
||||||
if not getattr(args, 'func', None):
|
if not getattr(args, 'func', None):
|
||||||
|
|
|
@ -80,11 +80,11 @@ EOF
|
||||||
test_expect_equal_file EXPECTED OUTPUT
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
||||||
test_begin_subtest "environment passed through when run as 'notmuch git'"
|
test_begin_subtest "environment passed through when run as 'notmuch git'"
|
||||||
env NMBGIT=foo NMBPREFIX=bar NOTMUCH_PROFILE=default notmuch git -C tags.git -p '' -ldebug status |& \
|
env NOTMUCH_GIT_DIR=foo NOTMUCH_GIT_PREFIX=bar NOTMUCH_PROFILE=default notmuch git -C tags.git -p '' -ldebug status |& \
|
||||||
grep '^env ' | notmuch_dir_sanitize > OUTPUT
|
grep '^env ' | notmuch_dir_sanitize > OUTPUT
|
||||||
cat <<EOF > EXPECTED
|
cat <<EOF > EXPECTED
|
||||||
env NMBGIT = foo
|
env NOTMUCH_GIT_DIR = foo
|
||||||
env NMBPREFIX = bar
|
env NOTMUCH_GIT_PREFIX = bar
|
||||||
env NOTMUCH_PROFILE = default
|
env NOTMUCH_PROFILE = default
|
||||||
env NOTMUCH_CONFIG = CWD/notmuch-config
|
env NOTMUCH_CONFIG = CWD/notmuch-config
|
||||||
EOF
|
EOF
|
||||||
|
|
Loading…
Reference in a new issue