Skip to content

Commit

Permalink
Merge pull request frappe#961 from gavindsouza/change-project-name
Browse files Browse the repository at this point in the history
  • Loading branch information
Thunderbottom authored May 5, 2020
2 parents c9aac45 + 76e401c commit 9f7a829
Show file tree
Hide file tree
Showing 15 changed files with 83 additions and 74 deletions.
9 changes: 3 additions & 6 deletions bench/__init__.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
from jinja2 import Environment, PackageLoader

__version__ = "5.0.0"

env = Environment(loader=PackageLoader('bench.config'))

VERSION = "5.0.0"
PROJECT_NAME = "frappe-bench"
FRAPPE_VERSION = None


def set_frappe_version(bench_path='.'):
from .app import get_current_frappe_version
global FRAPPE_VERSION
Expand Down
6 changes: 3 additions & 3 deletions bench/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@
import click

# imports - module imports
import bench
from bench.app import get_apps
from bench.commands import bench_command
from bench.config.common_site_config import get_config
from bench.utils import PatchError, bench_cache_file, check_latest_version, drop_privileges, find_parent_bench, generate_command_cache, get_cmd_output, get_env_cmd, get_frappe, is_bench_directory, is_dist_editable, is_root, log


logger = logging.getLogger('bench')
logger = logging.getLogger(bench.PROJECT_NAME)
from_command_line = False
change_uid_msg = "You should not run this command as root"

Expand All @@ -30,7 +30,7 @@ def cli():
change_dir()
change_uid()

if is_dist_editable("bench") and len(sys.argv) > 1 and sys.argv[1] != "src":
if is_dist_editable(bench.PROJECT_NAME) and len(sys.argv) > 1 and sys.argv[1] != "src":
log("bench is installed in editable mode!\n\nThis is not the recommended mode of installation for production. Instead, install the package from PyPI with: `pip install frappe-bench`\n", level=3)

if not is_bench_directory() and not cmd_requires_root() and len(sys.argv) > 1 and sys.argv[1] not in ("init", "find", "src"):
Expand Down
3 changes: 1 addition & 2 deletions bench/commands/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@ def print_bench_version(ctx, param, value):
return

import bench
click.echo(bench.__version__)
click.echo(bench.VERSION)
ctx.exit()

@click.group()
@click.option('--version', is_flag=True, is_eager=True, callback=print_bench_version, expose_value=False)
def bench_command(bench_path='.'):
"""Bench manager for Frappe"""
import bench
from bench.utils import setup_logging

Expand Down
1 change: 0 additions & 1 deletion bench/commands/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import bench.config.redis
import bench.config.site_config
import bench.config.supervisor

import bench.utils
from bench.utils import exec_cmd, run_playbook

Expand Down
6 changes: 6 additions & 0 deletions bench/config/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
"""Module for setting up system and respective bench configurations"""

# imports - third party imports
from jinja2 import Environment, PackageLoader

env = Environment(loader=PackageLoader('bench.config'))
25 changes: 14 additions & 11 deletions bench/config/lets_encrypt.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
import bench, os, click, errno
from bench.utils import exec_cmd, CommandFailedError, update_common_site_config
from bench.config.site_config import update_site_config, remove_domain, get_domains
# imports - standard imports
import os

# imports - third party imports
import click
from crontab import CronTab
from six.moves.urllib.request import urlretrieve

# imports - module imports
import bench
from bench.config.common_site_config import get_config
from bench.config.nginx import make_nginx_conf
from bench.config.production_setup import service
from bench.config.common_site_config import get_config
from crontab import CronTab
from bench.config.site_config import get_domains, remove_domain, update_site_config
from bench.utils import CommandFailedError, exec_cmd, update_common_site_config

try:
from urllib.request import urlretrieve
except ImportError:
from urllib import urlretrieve

def setup_letsencrypt(site, custom_domain, bench_path, interactive):

Expand Down Expand Up @@ -44,7 +48,7 @@ def setup_letsencrypt(site, custom_domain, bench_path, interactive):


def create_config(site, custom_domain):
config = bench.env.get_template('letsencrypt.cfg').render(domain=custom_domain or site)
config = bench.config.env.get_template('letsencrypt.cfg').render(domain=custom_domain or site)
config_path = '/etc/letsencrypt/configs/{site}.cfg'.format(site=custom_domain or site)
create_dir_if_missing(config_path)

Expand Down Expand Up @@ -171,4 +175,3 @@ def _get_domains(domain):
make_nginx_conf(bench_path)
print("Restrting Nginx service")
service('nginx', 'restart')

15 changes: 4 additions & 11 deletions bench/config/nginx.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from six import string_types

# imports - module imports
import bench
from bench.utils import get_bench_name, get_sites


Expand All @@ -19,14 +20,11 @@ def make_nginx_conf(bench_path, yes=False):
if not click.confirm('nginx.conf already exists and this will overwrite it. Do you want to continue?'):
return

from bench import env
from bench.config.common_site_config import get_config

template = env.get_template('nginx.conf')
template = bench.config.env.get_template('nginx.conf')
bench_path = os.path.abspath(bench_path)
sites_path = os.path.join(bench_path, "sites")

config = get_config(bench_path)
config = bench.config.common_site_config.get_config(bench_path)
sites = prepare_sites(config, bench_path)
bench_name = get_bench_name(bench_path)

Expand Down Expand Up @@ -58,17 +56,15 @@ def make_nginx_conf(bench_path, yes=False):
f.write(nginx_conf)

def make_bench_manager_nginx_conf(bench_path, yes=False, port=23624, domain=None):
from bench import env
from bench.config.site_config import get_site_config
from bench.config.common_site_config import get_config

template = env.get_template('bench_manager_nginx.conf')
template = bench.config.env.get_template('bench_manager_nginx.conf')
bench_path = os.path.abspath(bench_path)
sites_path = os.path.join(bench_path, "sites")

config = get_config(bench_path)
site_config = get_site_config(domain, bench_path=bench_path)
sites = prepare_sites(config, bench_path)
bench_name = get_bench_name(bench_path)

template_vars = {
Expand Down Expand Up @@ -153,9 +149,6 @@ def prepare_sites(config, bench_path):
while site["port"] in ports_in_use:
site["port"] += 1

# if site["port"] in ports_in_use:
# raise Exception("Port {0} is being used by another site {1}".format(site["port"], ports_in_use[site["port"]]))

if site["port"] in ports_in_use and not site["name"] in ports_in_use[site["port"]]:
shared_port_exception_found = True
ports_in_use[site["port"]].append(site["name"])
Expand Down
14 changes: 11 additions & 3 deletions bench/config/procfile.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
import bench, os, click
from bench.utils import find_executable
# imports - standard imports
import os

# imports - third party imports
import click

# imports - module imports
import bench
from bench.app import use_rq
from bench.config.common_site_config import get_config
from bench.utils import find_executable


def setup_procfile(bench_path, yes=False, skip_redis=False):
config = get_config(bench_path=bench_path)
Expand All @@ -10,7 +18,7 @@ def setup_procfile(bench_path, yes=False, skip_redis=False):
click.confirm('A Procfile already exists and this will overwrite it. Do you want to continue?',
abort=True)

procfile = bench.env.get_template('Procfile').render(
procfile = bench.config.env.get_template('Procfile').render(
node=find_executable("node") or find_executable("nodejs"),
use_rq=use_rq(bench_path),
webserver_port=config.get('webserver_port'),
Expand Down
3 changes: 1 addition & 2 deletions bench/config/production_setup.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
# imports - standard imports
import os
import sys
from distutils.spawn import find_executable

# imports - module imports
from bench.config.common_site_config import get_config
from bench.config.nginx import make_nginx_conf
from bench.config.supervisor import generate_supervisor_config
from bench.config.systemd import generate_systemd_config
from bench.utils import CommandFailedError, exec_cmd, fix_prod_setup_perms, get_bench_name, get_cmd_output
from bench.utils import CommandFailedError, exec_cmd, find_executable, fix_prod_setup_perms, get_bench_name, get_cmd_output


def setup_production_prerequisites():
Expand Down
2 changes: 1 addition & 1 deletion bench/config/redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def generate_config(bench_path):
os.makedirs(pid_path)

def write_redis_config(template_name, context, bench_path):
template = bench.env.get_template(template_name)
template = bench.config.env.get_template(template_name)

if "pid_path" not in context:
context["pid_path"] = os.path.abspath(os.path.join(bench_path, "config", "pids"))
Expand Down
11 changes: 8 additions & 3 deletions bench/config/site_config.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
import os, json
from bench.utils import get_sites
from bench.config.nginx import make_nginx_conf
# imports - standard imports
import json
import os
from collections import defaultdict

# imports - module imports
from bench.config.nginx import make_nginx_conf
from bench.utils import get_sites


def get_site_config(site, bench_path='.'):
config_path = os.path.join(bench_path, 'sites', site, 'site_config.json')
if not os.path.exists(config_path):
Expand Down
2 changes: 1 addition & 1 deletion bench/config/supervisor.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def generate_supervisor_config(bench_path, user=None, yes=False):

update_supervisord_conf(user=user)

template = bench.env.get_template('supervisor.conf')
template = bench.config.env.get_template('supervisor.conf')
config = get_config(bench_path=bench_path)
bench_dir = os.path.abspath(bench_path)

Expand Down
41 changes: 24 additions & 17 deletions bench/config/systemd.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
import os, getpass, click
# imports - standard imports
import getpass
import os

# imports - third partyimports
import click

# imports - module imports
import bench
from bench.utils import exec_cmd
from bench.app import get_current_frappe_version, use_rq
from bench.utils import get_bench_name, find_executable
from bench.config.common_site_config import get_config, update_config, get_gunicorn_workers
from bench.config.common_site_config import get_config, get_gunicorn_workers, update_config
from bench.utils import exec_cmd, find_executable, get_bench_name


def generate_systemd_config(bench_path, user=None, yes=False,
stop=False, create_symlinks=False,
Expand Down Expand Up @@ -78,7 +85,7 @@ def setup_systemd_directory(bench_path):

def setup_main_config(bench_info, bench_path):
# Main config
bench_template = bench.env.get_template('systemd/frappe-bench.target')
bench_template = bench.config.env.get_template('systemd/frappe-bench.target')
bench_config = bench_template.render(**bench_info)
bench_config_path = os.path.join(bench_path, 'config', 'systemd' , bench_info.get("bench_name") + '.target')

Expand All @@ -87,11 +94,11 @@ def setup_main_config(bench_info, bench_path):

def setup_workers_config(bench_info, bench_path):
# Worker Group
bench_workers_target_template = bench.env.get_template('systemd/frappe-bench-workers.target')
bench_default_worker_template = bench.env.get_template('systemd/frappe-bench-frappe-default-worker.service')
bench_short_worker_template = bench.env.get_template('systemd/frappe-bench-frappe-short-worker.service')
bench_long_worker_template = bench.env.get_template('systemd/frappe-bench-frappe-long-worker.service')
bench_schedule_worker_template = bench.env.get_template('systemd/frappe-bench-frappe-schedule.service')
bench_workers_target_template = bench.config.env.get_template('systemd/frappe-bench-workers.target')
bench_default_worker_template = bench.config.env.get_template('systemd/frappe-bench-frappe-default-worker.service')
bench_short_worker_template = bench.config.env.get_template('systemd/frappe-bench-frappe-short-worker.service')
bench_long_worker_template = bench.config.env.get_template('systemd/frappe-bench-frappe-long-worker.service')
bench_schedule_worker_template = bench.config.env.get_template('systemd/frappe-bench-frappe-schedule.service')

bench_workers_target_config = bench_workers_target_template.render(**bench_info)
bench_default_worker_config = bench_default_worker_template.render(**bench_info)
Expand Down Expand Up @@ -122,9 +129,9 @@ def setup_workers_config(bench_info, bench_path):

def setup_web_config(bench_info, bench_path):
# Web Group
bench_web_target_template = bench.env.get_template('systemd/frappe-bench-web.target')
bench_web_service_template = bench.env.get_template('systemd/frappe-bench-frappe-web.service')
bench_node_socketio_template = bench.env.get_template('systemd/frappe-bench-node-socketio.service')
bench_web_target_template = bench.config.env.get_template('systemd/frappe-bench-web.target')
bench_web_service_template = bench.config.env.get_template('systemd/frappe-bench-frappe-web.service')
bench_node_socketio_template = bench.config.env.get_template('systemd/frappe-bench-node-socketio.service')

bench_web_target_config = bench_web_target_template.render(**bench_info)
bench_web_service_config = bench_web_service_template.render(**bench_info)
Expand All @@ -145,10 +152,10 @@ def setup_web_config(bench_info, bench_path):

def setup_redis_config(bench_info, bench_path):
# Redis Group
bench_redis_target_template = bench.env.get_template('systemd/frappe-bench-redis.target')
bench_redis_cache_template = bench.env.get_template('systemd/frappe-bench-redis-cache.service')
bench_redis_queue_template = bench.env.get_template('systemd/frappe-bench-redis-queue.service')
bench_redis_socketio_template = bench.env.get_template('systemd/frappe-bench-redis-socketio.service')
bench_redis_target_template = bench.config.env.get_template('systemd/frappe-bench-redis.target')
bench_redis_cache_template = bench.config.env.get_template('systemd/frappe-bench-redis-cache.service')
bench_redis_queue_template = bench.config.env.get_template('systemd/frappe-bench-redis-queue.service')
bench_redis_socketio_template = bench.config.env.get_template('systemd/frappe-bench-redis-socketio.service')

bench_redis_target_config = bench_redis_target_template.render(**bench_info)
bench_redis_cache_config = bench_redis_cache_template.render(**bench_info)
Expand Down
8 changes: 3 additions & 5 deletions bench/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def check_latest_version():
if pypi_request.status_code == 200:
pypi_version_str = pypi_request.json().get('info').get('version')
pypi_version = Version(pypi_version_str)
local_version = Version(bench.__version__)
local_version = Version(bench.VERSION)

if pypi_version > local_version:
log("A newer version of bench is available: {0} → {1}".format(local_version, pypi_version))
Expand Down Expand Up @@ -394,8 +394,6 @@ def setup_backups(bench_path='.'):


def setup_sudoers(user):
from bench import env

if not os.path.exists('/etc/sudoers.d'):
os.makedirs('/etc/sudoers.d')

Expand All @@ -409,7 +407,7 @@ def setup_sudoers(user):
if set_permissions:
os.chmod('/etc/sudoers', 0o440)

template = env.get_template('frappe_sudoers')
template = bench.config.env.get_template('frappe_sudoers')
frappe_sudoers = template.render(**{
'user': user,
'service': find_executable('service'),
Expand All @@ -427,7 +425,7 @@ def setup_sudoers(user):

def setup_logging(bench_path='.'):
if os.path.exists(os.path.join(bench_path, 'logs')):
logger = logging.getLogger('bench')
logger = logging.getLogger(bench.PROJECT_NAME)
log_file = os.path.join(bench_path, 'logs', 'bench.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr = logging.FileHandler(log_file)
Expand Down
11 changes: 3 additions & 8 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,17 @@
from setuptools import setup, find_packages
import re, ast

# get version from __version__ variable in bench/__init__.py
_version_re = re.compile(r'__version__\s+=\s+(.*)')
from bench import PROJECT_NAME, VERSION

with open('requirements.txt') as f:
install_requires = f.read().strip().split('\n')

with open('bench/__init__.py', 'rb') as f:
version = str(ast.literal_eval(_version_re.search(
f.read().decode('utf-8')).group(1)))

setup(
name='bench',
name=PROJECT_NAME,
description='Metadata driven, full-stack web framework',
author='Frappe Technologies',
author_email='info@frappe.io',
version=version,
version=VERSION,
packages=find_packages(),
zip_safe=False,
include_package_data=True,
Expand Down

0 comments on commit 9f7a829

Please sign in to comment.