summaryrefslogtreecommitdiff
path: root/openerpcommand/initialize.py
diff options
context:
space:
mode:
Diffstat (limited to 'openerpcommand/initialize.py')
-rw-r--r--openerpcommand/initialize.py121
1 files changed, 0 insertions, 121 deletions
diff --git a/openerpcommand/initialize.py b/openerpcommand/initialize.py
deleted file mode 100644
index cf4e54bfb82..00000000000
--- a/openerpcommand/initialize.py
+++ /dev/null
@@ -1,121 +0,0 @@
-"""
-Install OpenERP on a new (by default) database.
-"""
-import contextlib
-import errno
-import os
-import sys
-import time
-
-import common
-
-# From http://code.activestate.com/recipes/576572/
-@contextlib.contextmanager
-def lock_file(path, wait_delay=.1, max_try=600):
- attempt = 0
- while True:
- attempt += 1
- if attempt > max_try:
- raise IOError("Could not lock file %s." % path)
- try:
- fd = os.open(path, os.O_CREAT | os.O_EXCL | os.O_RDWR)
- except OSError, e:
- if e.errno != errno.EEXIST:
- raise
- time.sleep(wait_delay)
- continue
- else:
- break
- try:
- yield fd
- finally:
- os.close(fd)
- os.unlink(path)
-
-def run(args):
- assert args.database
- assert not (args.module and args.all_modules)
-
- import openerp
-
- config = openerp.tools.config
- config['db_name'] = args.database
-
- if args.tests:
- config['log_handler'] = [':INFO']
- config['test_enable'] = True
- config['without_demo'] = False
- if args.port:
- config['xmlrpc_port'] = int(args.port)
- else:
- config['log_handler'] = [':CRITICAL']
- config['test_enable'] = False
- config['without_demo'] = True
-
- if args.addons:
- args.addons = args.addons.split(':')
- else:
- args.addons = []
- config['addons_path'] = ','.join(args.addons)
-
- if args.all_modules:
- module_names = common.get_addons_from_paths(args.addons, args.exclude)
- elif args.module:
- module_names = args.module
- else:
- module_names = ['base']
- config['init'] = dict.fromkeys(module_names, 1)
-
- if args.coverage:
- import coverage
- # Without the `include` kwarg, coverage generates 'memory:0xXXXXX'
- # filenames (which do not exist) and cause it to crash. No idea why.
- cov = coverage.coverage(branch=True, include='*.py')
- cov.start()
- openerp.netsvc.init_logger()
-
- if not args.no_create:
- with lock_file('/tmp/global_openerp_create_database.lock'):
- openerp.service.db._create_empty_database(args.database)
-
- config['workers'] = False
-
- rc = openerp.service.server.start(preload=[args.database], stop=True)
-
- if args.coverage:
- cov.stop()
- cov.html_report(directory='coverage')
- # If we wanted the report on stdout:
- # cov.report()
-
- sys.exit(rc)
-
-def add_parser(subparsers):
- parser = subparsers.add_parser('initialize',
- description='Create and initialize a new OpenERP database.')
- parser.add_argument('-d', '--database', metavar='DATABASE',
- **common.required_or_default('DATABASE', 'the database to create'))
- common.add_addons_argument(parser)
- parser.add_argument('-P', '--port', metavar='PORT',
- **common.required_or_default('PORT', 'the server port'))
- parser.add_argument('--module', metavar='MODULE', action='append',
- help='specify a module to install'
- ' (this option can be repeated)')
- parser.add_argument('--all-modules', action='store_true',
- help='install all visible modules (not compatible with --module)')
- parser.add_argument('--no-create', action='store_true',
- help='do not create the database, only initialize it')
- parser.add_argument('--exclude', metavar='MODULE', action='append',
- help='exclude a module from installation'
- ' (this option can be repeated)')
- parser.add_argument('--tests', action='store_true',
- help='run the tests as modules are installed'
- ' (use the `run-tests` command to choose specific'
- ' tests to run against an existing database).'
- ' Demo data are installed.')
- parser.add_argument('--coverage', action='store_true',
- help='report code coverage (particularly useful with --tests).'
- ' The report is generated in a coverage directory and you can'
- ' then point your browser to coverage/index.html.')
-
- parser.set_defaults(run=run)