Mercurial > hg
changeset 5497:f0a3918abd42
convert: fail if an external required tool is not found
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Tue, 30 Oct 2007 22:14:15 +0100 |
parents | 5bff70ff0431 |
children | 4d38e6970b8c |
files | hgext/convert/common.py hgext/convert/cvs.py hgext/convert/darcs.py hgext/convert/git.py |
diffstat | 4 files changed, 17 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/convert/common.py Sun Oct 28 09:47:54 2007 +0100 +++ b/hgext/convert/common.py Tue Oct 30 22:14:15 2007 +0100 @@ -1,6 +1,7 @@ # common code for the convert extension import base64 import cPickle as pickle +from mercurial import util def encodeargs(args): def encodearg(s): @@ -15,6 +16,11 @@ s = base64.decodestring(s) return pickle.loads(s) +def checktool(exe, name=None): + name = name or exe + if not util.find_exe(exe): + raise util.Abort('cannot find required "%s" tool' % name) + class NoRepo(Exception): pass SKIPREV = 'SKIP'
--- a/hgext/convert/cvs.py Sun Oct 28 09:47:54 2007 +0100 +++ b/hgext/convert/cvs.py Tue Oct 30 22:14:15 2007 +0100 @@ -3,7 +3,7 @@ import os, locale, re, socket from mercurial import util -from common import NoRepo, commit, converter_source +from common import NoRepo, commit, converter_source, checktool class convert_cvs(converter_source): def __init__(self, ui, path, rev=None): @@ -13,6 +13,9 @@ if not os.path.exists(cvs): raise NoRepo("couldn't open CVS repo %s" % path) + for tool in ('cvsps', 'cvs'): + checktool(tool) + self.changeset = {} self.files = {} self.tags = {}
--- a/hgext/convert/darcs.py Sun Oct 28 09:47:54 2007 +0100 +++ b/hgext/convert/darcs.py Tue Oct 30 22:14:15 2007 +0100 @@ -1,6 +1,6 @@ # darcs support for the convert extension -from common import NoRepo, commit, converter_source +from common import NoRepo, commit, converter_source, checktool from mercurial.i18n import _ from mercurial import util import os, shutil, tempfile @@ -24,6 +24,8 @@ if not os.path.exists(os.path.join(path, '_darcs', 'inventory')): raise NoRepo("couldn't open darcs repo %s" % path) + checktool('darcs') + if ElementTree is None: raise util.Abort(_("Python ElementTree module is not available"))
--- a/hgext/convert/git.py Sun Oct 28 09:47:54 2007 +0100 +++ b/hgext/convert/git.py Tue Oct 30 22:14:15 2007 +0100 @@ -3,7 +3,7 @@ import os from mercurial import util -from common import NoRepo, commit, converter_source +from common import NoRepo, commit, converter_source, checktool class convert_git(converter_source): # Windows does not support GIT_DIR= construct while other systems @@ -31,6 +31,9 @@ path += "/.git" if not os.path.exists(path + "/objects"): raise NoRepo("couldn't open GIT repo %s" % path) + + checktool('git-rev-parse', 'git') + self.path = path def getheads(self):