コード例 #1
0
ファイル: __init__.py プロジェクト: dataent/bench
def bench_command(bench_path='.'):
	"""Bench manager for Dataent"""
	import bench
	from bench.utils import setup_logging

	bench.set_dataent_version(bench_path=bench_path)
	setup_logging(bench_path=bench_path)
コード例 #2
0
ファイル: utils.py プロジェクト: dataent/bench
def backup_site(site, bench_path='.'):
    bench.set_dataent_version(bench_path=bench_path)

    if bench.DATAENT_VERSION == 4:
        exec_cmd("{dataent} --backup {site}".format(
            dataent=get_dataent(bench_path=bench_path), site=site),
                 cwd=os.path.join(bench_path, 'sites'))
    else:
        run_dataent_cmd('--site', site, 'backup', bench_path=bench_path)
コード例 #3
0
ファイル: utils.py プロジェクト: dataent/bench
def build_assets(bench_path='.', app=None):
    bench.set_dataent_version(bench_path=bench_path)

    if bench.DATAENT_VERSION == 4:
        exec_cmd("{dataent} --build".format(dataent=get_dataent(
            bench_path=bench_path)),
                 cwd=os.path.join(bench_path, 'sites'))
    else:
        command = 'bench build'
        if app:
            command += ' --app {}'.format(app)
        exec_cmd(command, cwd=bench_path)
コード例 #4
0
ファイル: utils.py プロジェクト: dataent/bench
def patch_sites(bench_path='.'):
    bench.set_dataent_version(bench_path=bench_path)

    try:
        if bench.DATAENT_VERSION == 4:
            exec_cmd("{dataent} --latest all".format(dataent=get_dataent(
                bench_path=bench_path)),
                     cwd=os.path.join(bench_path, 'sites'))
        else:
            run_dataent_cmd('--site', 'all', 'migrate', bench_path=bench_path)
    except subprocess.CalledProcessError:
        raise PatchError
コード例 #5
0
ファイル: app.py プロジェクト: dataent/bench
def new_app(app, bench_path='.'):
	# For backwards compatibility
	app = app.lower().replace(" ", "_").replace("-", "_")
	logger.info('creating new app {}'.format(app))
	apps = os.path.abspath(os.path.join(bench_path, 'apps'))
	bench.set_dataent_version(bench_path=bench_path)

	if bench.DATAENT_VERSION == 4:
		exec_cmd("{dataent} --make_app {apps} {app}".format(dataent=get_dataent(bench_path=bench_path),
			apps=apps, app=app))
	else:
		run_dataent_cmd('make-app', apps, app, bench_path=bench_path)
	install_app(app, bench_path=bench_path)
コード例 #6
0
ファイル: utils.py プロジェクト: dataent/bench
def setup_backups(bench_path='.'):
    logger.info('setting up backups')
    bench_dir = get_bench_dir(bench_path=bench_path)
    bench.set_dataent_version(bench_path=bench_path)

    if bench.DATAENT_VERSION == 4:
        backup_command = "cd {sites_dir} && {dataent} --backup all".format(
            dataent=get_dataent(bench_path=bench_path), )
    else:
        backup_command = "cd {bench_dir} && {bench} --site all backup".format(
            bench_dir=bench_dir, bench=sys.argv[0])

    add_to_crontab('0 */6 * * *  {backup_command} >> {logfile} 2>&1'.format(
        backup_command=backup_command,
        logfile=os.path.join(get_bench_dir(bench_path=bench_path), 'logs',
                             'backup.log')))
コード例 #7
0
ファイル: utils.py プロジェクト: dataent/bench
def init(path,
         apps_path=None,
         no_procfile=False,
         no_backups=False,
         no_auto_update=False,
         dataent_path=None,
         dataent_branch=None,
         wheel_cache_dir=None,
         verbose=False,
         clone_from=None,
         skip_redis_config_generation=False,
         clone_without_update=False,
         ignore_exist=False,
         python='python'
         ):  # Let's change when we're ready. - <*****@*****.**>
    from .app import get_app, install_apps_from_path
    from .config.common_site_config import make_config
    from .config import redis
    from .config.procfile import setup_procfile
    from bench.patches import set_all_patches_executed

    import os.path as osp

    if osp.exists(path):
        if not ignore_exist:
            raise ValueError(
                'Bench Instance {path} already exists.'.format(path=path))
    else:
        os.makedirs(path)

    for dirname in folders_in_bench:
        try:
            os.makedirs(os.path.join(path, dirname))
        except OSError as e:
            if e.errno == os.errno.EEXIST:
                pass

    setup_logging()

    setup_env(bench_path=path, python=python)

    make_config(path)

    if clone_from:
        clone_apps_from(bench_path=path,
                        clone_from=clone_from,
                        update_app=not clone_without_update)
    else:
        if not dataent_path:
            dataent_path = 'https://github.com/dataent/dataent.git'

        get_app(dataent_path,
                branch=dataent_branch,
                bench_path=path,
                build_asset_files=False,
                verbose=verbose)

        if apps_path:
            install_apps_from_path(apps_path, bench_path=path)

    bench.set_dataent_version(bench_path=path)
    if bench.DATAENT_VERSION > 5:
        update_node_packages(bench_path=path)

    set_all_patches_executed(bench_path=path)
    build_assets(bench_path=path)

    if not skip_redis_config_generation:
        redis.generate_config(path)

    if not no_procfile:
        setup_procfile(path)
    if not no_backups:
        setup_backups(bench_path=path)
    if not no_auto_update:
        setup_auto_update(bench_path=path)
    copy_patches_txt(path)