Exemple #1
0
def module_install(args):
	"""
	Install available module to database
	"""
	cfg = setup_app(args.ini_file, args.application)
	setup_mako_sql(cfg)
	mm = ModuleManager(cfg)
	sess = get_session()
	mm.scan()
	if args.name != 'core':
		mm.load('core')
	mm.load_all()

	if args.name.lower() == 'all':
		mm.install('core', sess)
		for mod in mm.modules:
			if mod != 'core':
				mm.install(mod, sess)
		return 'All done.'

	ret = mm.install(args.name, sess)
	if isinstance(ret, bool):
		if ret:
			return 'Module \'%s\' successfully installed.' % (args.name,)
		else:
			return 'Error: Module \'%s\' is already installed.' % (args.name,)
	return 'Error: Unknown result.'
Exemple #2
0
def main(argv=sys.argv):
	if len(argv) != 2:
		usage(argv)
	config_uri = argv[1]
	setup_logging(config_uri)
	settings = get_appsettings(config_uri)
	config = setup_config(settings)

	reg = threadlocal.get_current_registry()

	factory = pyramid_mako.MakoRendererFactory()

	name_resolver = DottedNameResolver()
	lookup_opts = pyramid_mako.parse_options_from_settings(settings, 'mako.', name_resolver.maybe_resolve)
	lookup_opts.update({
		'default_filters' : ['context[\'self\'].ddl.ddl_fmt']
	})
	factory.lookup = pyramid_mako.PkgResourceTemplateLookup(**lookup_opts)

	reg.registerUtility(factory, IRendererFactory, name='.mak')

	sess = DBSession()
	mm = ModuleManager(config)

	sess.execute(SetVariable('accessuid', 0))
	sess.execute(SetVariable('accessgid', 0))
	sess.execute(SetVariable('accesslogin', '[CREATEDB]'))

	mm.scan()
	mm.install('core', sess)
	for moddef in mm.modules:
		if moddef != 'core':
			mm.install(moddef, sess)