summaryrefslogtreecommitdiff
path: root/src/leap/start_mx.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/start_mx.py')
-rwxr-xr-xsrc/leap/start_mx.py157
1 files changed, 0 insertions, 157 deletions
diff --git a/src/leap/start_mx.py b/src/leap/start_mx.py
deleted file mode 100755
index 59556f0..0000000
--- a/src/leap/start_mx.py
+++ /dev/null
@@ -1,157 +0,0 @@
-#!/usr/bin/env python
-#-*- coding: utf-8 -*-
-"""
- ____
- | mx |
- |____|_______________________
- | |
- | An encrypting remailer. |
- |_________________________|
-
-@author Isis Agora Lovecruft <isis@leap.se>, 0x2cdb8b35
-@version 0.0.1
-
-"""
-
-import os, sys
-
-
-package_source = "/src"
-application_name = "leap_mx"
-
-def __get_repo_dir__():
- """Get the absolute path of the top-level repository directory."""
- here = os.getcwd()
- repo = here.rsplit(package_source, 1)[0]
- leap = os.path.join(repo, package_source)
- this = os.path.join(leap, application_name.replace('_', '/'))
- return repo, leap, this
-
-## Set the $PYTHONPATH:
-repo, leap, this = __get_repo_dir__()
-srcdir = os.path.join(repo, 'src/')
-sys.path[:] = map(os.path.abspath, sys.path)
-sys.path.insert(0, leap)
-
-## Now we should be able to import ourselves without installation:
-try:
- from leap.mx import runner
- from leap.mx.util import log, version
-except ImportError, ie:
- print "%s\nExiting..." % ie.message
- sys.exit(1)
-
-
-class CheckRequirements(ImportError):
- """
- Raised when we're missing something from requirements.pip.
- """
- def __init__(self, message=None, missing=None, pipfile=None):
- """
- Display an error message with instructions for obtaining missing
- dependencies.
-
- @param message: A string describing the error.
- @param missing: A string indicating which dependency is missing.
- @param pipfile: The path and filename of the pip requirements file,
- relative to the top-level repository directory.
- """
- if message:
- self.message = message
- return self
-
- self.pipfile = pipfile
-
- if isinstance(missing, str):
- missing = [missing]
- else:
- missing = []
- dependencies = self.__read_pip_requirements__()
- for package, version in dependencies:
- pkg = package.lower() if package == "Twisted" else package
- try:
- __import__(pkg)
- except ImportError:
- missing.append(package)
-
- self.message = application_name + " requires "
- if len(missing) > 1:
- for missed in missing[:-1]:
- self.message += missed + ", "
- self.message += "and "
- if len(missing) == 1:
- self.message += missing[0] + "."
- self.message += "\nPlease see %s for ".format(pipfile)
- self.message += "instruction on installing dependencies."
- raise self
- elif len(missing) <= 0:
- return
-
- def __read_pip_requirements__(self, file=None):
- """
- Check the pip requirements file to determine our dependencies.
-
- @param file: The name of the pip requirements.txt file.
- @returns: A list of tuple(package_name, package_version).
- """
- import re
-
- if not file:
- file = self.pipfile
-
- filepath = os.path.join(__get_repo_dir__(), file)
- requirement = re.compile('[^0-9=><]+')
- dependencies = []
-
- print filepath
- assert os.path.isfile(filepath), \
- "Couldn't find requirements.pip file!"
-
- with open(filepath) as pipfile:
- for line in pipfile.readlines():
- shortened = line.strip()
- matched = requirement.match(shortened)
- package_name = matched.group()
- package_version = shortened.split(package_name, 1)[1]
- dependencies.append((package_name, package_version))
-
- return dependencies
-
-dependency_check = CheckRequirements(pipfile='pkg/mx-requirements.pip')
-
-try:
- from twisted.python import usage, runtime
- from twisted.internet import reactor
-except ImportError, ie:
- print "CheckRequirements class is broken!:", ie.message
-
-
-if __name__ == "__main__":
-
- log.start()
- log.debug("Running %s, with Python %s" % (application_name,
- runtime.shortPythonVersion()))
- log.debug("Platform: %s" % runtime.platform.getType())
- log.debug("Thread support: %s" % str(runtime.platform.supportsThreads()))
-
- mx_options = MXOptions()
- mx_options.parseOptions(sys.argv)
-
- if len(sys.argv) <= 0:
- print mx_options.getUsage()
- sys.exit(0)
- else:
- options = mx_options
-
- if options['verbose']:
- config.basic.debug = True
-
- if options['test']:
- from leap.mx import tests ## xxx this needs an __init__.py
- tests.run() ## xxx need /leap/mx/tests.py
- elif options['conf'] and os.path.isfile(options['conf']):
- config.parse() ## xxx need /leap/mx/config.py
- runner.run() ## xxx need /leap/mx/runner.py
- else:
- mx_options.getUsage()
- sys.exit(1)