Skip to content
Snippets Groups Projects
Commit f0a3918a authored by Patrick Mezard's avatar Patrick Mezard
Browse files

convert: fail if an external required tool is not found

parent 5bff70ff
No related branches found
No related tags found
No related merge requests found
# 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'
......
......@@ -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 = {}
......
# 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"))
......
......@@ -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):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment