70 lines
1.7 KiB
Python
70 lines
1.7 KiB
Python
import click
|
|
|
|
from . import config
|
|
from . import env as tutor_env
|
|
from . import fmt
|
|
from . import opts
|
|
from . import utils
|
|
|
|
|
|
DOCKER_IMAGE = "regis/openedx-android:hawthorn"
|
|
|
|
@click.group(
|
|
help="Build an Android app for your Open edX platform [BETA FEATURE]"
|
|
)
|
|
def android():
|
|
pass
|
|
|
|
@click.command(
|
|
help="Generate the environment required for building the application"
|
|
)
|
|
@opts.root
|
|
def env(root):
|
|
tutor_env.render_target(root, config.load(root), "android")
|
|
|
|
@click.group(
|
|
help="Build the application"
|
|
)
|
|
def build():
|
|
pass
|
|
|
|
@click.command(
|
|
help="Build the application in debug mode"
|
|
)
|
|
@opts.root
|
|
def debug(root):
|
|
docker_run(
|
|
root, "./gradlew", "assembleProdDebuggable", "&&",
|
|
"cp", "OpenEdXMobile/build/outputs/apk/prod/debuggable/*.apk", "/openedx/data/"
|
|
)
|
|
click.echo(fmt.info("The debuggable APK file is available in {}".format(tutor_env.data_path(root, "android"))))
|
|
|
|
@click.command(
|
|
help="Build the application in release mode"
|
|
)
|
|
@opts.root
|
|
def release(root):
|
|
docker_run(root, "./gradlew", "assembleProdRelease")
|
|
click.echo(fmt.info("The production APK file is available in {}".format(tutor_env.data_path(root, "android"))))
|
|
|
|
@click.command(
|
|
help="Pull the docker image"
|
|
)
|
|
@opts.root
|
|
def pullimage():
|
|
utils.execute("docker", "pull", DOCKER_IMAGE)
|
|
|
|
def docker_run(root, *command):
|
|
utils.docker_run(
|
|
"--volume={}/:/openedx/config/".format(tutor_env.pathjoin(root, "android")),
|
|
"--volume={}:/openedx/data".format(tutor_env.data_path(root, "android")),
|
|
DOCKER_IMAGE,
|
|
*command
|
|
)
|
|
|
|
build.add_command(debug)
|
|
build.add_command(release)
|
|
android.add_command(build)
|
|
android.add_command(env)
|
|
android.add_command(pullimage)
|