from os import path, listdir, sep, environ, mkdir, pathsep, getcwd
from pkg_resources import resource_filename
+from distutils.dist import Distribution
+from distutils.command.install import install
from sys import path as pypath, platform
from datetime import datetime
from string import Template
__status__ = 'Development'
+def get_bin_dir():
+ d = install(Distribution())
+ d.finalize_options()
+ return d.install_scripts
+
+
def get_commands(module='canari.commands'):
sc = __import__(module, globals(), locals(), fromlist=['__all__'])
commands = {}
CmdLineTransformProperty, CmdParmTransformProperty, InputConstraint, TransformSet,
TransformSettings, CmdCwdTransformPropertySetting, CmdDbgTransformPropertySetting,
CmdLineTransformPropertySetting, CmdParmTransformPropertySetting)
-from common import detect_settings_dir, cmd_name, fix_pypath
+from common import detect_settings_dir, cmd_name, fix_pypath, get_bin_dir
from ..maltego.message import ElementTree
from os import sep, path, mkdir, chdir, getcwd, name
-from distutils.sysconfig import get_config_var
from pkg_resources import resource_filename
from argparse import ArgumentParser
from string import Template
ElementTree(transform).write(sep.join([installdir, '%s.transform' % n]))
transformsettings = TransformSettings(properties=[
- CmdLineTransformPropertySetting(path.join(get_config_var('BINDIR'), 'dispatcher')),
+ CmdLineTransformPropertySetting(path.join(get_bin_dir(), 'dispatcher')),
CmdParmTransformPropertySetting(name),
CmdCwdTransformPropertySetting(working_dir),
CmdDbgTransformPropertySetting(spec.debug)
#!/usr/bin/env python
from ..maltego.message import MaltegoException, MaltegoTransformResponseMessage
+from common import cmd_name, import_transform, fix_binpath, get_bin_dir
from ..maltego.utils import onterminate, parseargs, croak, message
-from common import cmd_name, import_transform, fix_binpath
-from distutils.sysconfig import get_config_var
from os import execvp, geteuid, name, path
from argparse import ArgumentParser
from traceback import format_exc
[transform, params, value, fields] = parseargs(['canari %s' % cmd_name(__name__)] + args)
m = None
- pysudo = path.join(get_config_var('BINDIR'), 'pysudo')
+ pysudo = path.join(get_bin_dir(), 'pysudo')
fix_binpath(config['default/path'])
try:
from ..maltego.message import MaltegoTransformResponseMessage
from ..config import config
-from distutils.sysconfig import get_config_var
from os import path, name, geteuid, execvp
from code import InteractiveConsole
from argparse import ArgumentParser
def __init__(self, value, **kwargs):
super(Entity, self).__init__("Entity")
- type = kwargs.get('type', None)
+ type = kwargs.pop('type', None)
if type is None:
self.type = '%s.%s' % (self.namespace, self.__class__.__name__ if self.name is None else self.name)
+ else:
+ self.type = type
self.value = value
- self.weight = kwargs.get('weight', self.weight)
- self.iconurl = kwargs.get('iconurl', self.iconurl)
- self.appendelements(kwargs.get('fields'))
- self.appendelements(kwargs.get('labels'))
+ self.weight = kwargs.pop('weight', self.weight)
+ self.iconurl = kwargs.pop('iconurl', self.iconurl)
+ self.appendelements(kwargs.pop('fields', None))
+ self.appendelements(kwargs.pop('labels', None))
+ for p in kwargs:
+ if hasattr(self, p):
+ setattr(self, p, kwargs[p])
def appendelement(self, other):
if isinstance(other, Field):