78 lines
2.2 KiB
Python
78 lines
2.2 KiB
Python
from __future__ import unicode_literals, absolute_import
|
|
import click
|
|
import os
|
|
import frappe
|
|
from frappe.commands import pass_context
|
|
|
|
|
|
@click.command('write-docs')
|
|
@pass_context
|
|
@click.argument('app')
|
|
@click.option('--target', default=None)
|
|
@click.option('--local', default=False, is_flag=True, help='Run app locally')
|
|
def write_docs(context, app, target=None, local=False):
|
|
"Setup docs in target folder of target app"
|
|
from frappe.utils.setup_docs import setup_docs
|
|
|
|
if not target:
|
|
target = os.path.abspath(os.path.join("..", "docs", app))
|
|
|
|
for site in context.sites:
|
|
try:
|
|
frappe.init(site=site)
|
|
frappe.connect()
|
|
make = setup_docs(app)
|
|
make.make_docs(target, local)
|
|
finally:
|
|
frappe.destroy()
|
|
|
|
@click.command('build-docs')
|
|
@pass_context
|
|
@click.argument('app')
|
|
@click.option('--docs-version', default='current')
|
|
@click.option('--target', default=None)
|
|
@click.option('--local', default=False, is_flag=True, help='Run app locally')
|
|
@click.option('--watch', default=False, is_flag=True, help='Watch for changes and rewrite')
|
|
def build_docs(context, app, docs_version="current", target=None, local=False, watch=False):
|
|
"Setup docs in target folder of target app"
|
|
from frappe.utils import watch as start_watch
|
|
if not target:
|
|
target = os.path.abspath(os.path.join("..", "docs", app))
|
|
|
|
for site in context.sites:
|
|
_build_docs_once(site, app, docs_version, target, local)
|
|
|
|
if watch:
|
|
def trigger_make(source_path, event_type):
|
|
if "/templates/autodoc/" in source_path:
|
|
_build_docs_once(site, app, docs_version, target, local)
|
|
|
|
elif ("/docs.css" in source_path
|
|
or "/docs/" in source_path
|
|
or "docs.py" in source_path):
|
|
_build_docs_once(site, app, docs_version, target, local, only_content_updated=True)
|
|
|
|
apps_path = frappe.get_app_path(app, "..", "..")
|
|
start_watch(apps_path, handler=trigger_make)
|
|
|
|
def _build_docs_once(site, app, docs_version, target, local, only_content_updated=False):
|
|
from frappe.utils.setup_docs import setup_docs
|
|
|
|
try:
|
|
|
|
frappe.init(site=site)
|
|
frappe.connect()
|
|
make = setup_docs(app)
|
|
|
|
if not only_content_updated:
|
|
make.build(docs_version)
|
|
|
|
make.make_docs(target, local)
|
|
|
|
finally:
|
|
frappe.destroy()
|
|
|
|
commands = [
|
|
build_docs,
|
|
write_docs,
|
|
]
|