dx/dxkit/modules/app.module.sh

44 lines
No EOL
2.1 KiB
Bash

#!/usr/bin/env bash
# modules/app.module.sh
#
# Framework abstraction layer.
# Dispatches app lifecycle functions to the active framework module.
#
# Active framework is determined by --framework flag (default: yii2-advanced)
# Set in .dx-flags or passed as: dx build --framework=laravel
function app::on_load() {
load_module "framework/$(app::framework)"
load_module proxy
load_module composer
# Register framework console name as alias for console command
# yii2-advanced → yii, laravel → artisan
# CMD_ALIASES is declared in dx
CMD_ALIASES["$(app::console_name)"]=console
CMD_ALIASES[console]=console
}
# ============================================
# Framework identity
# ============================================
function app::framework { echo "${APP_FRAMEWORK:-yii2-advanced}"; }
function app::console_name() { "framework::$(app::framework)::console_name"; }
# ============================================
# Interface
# ============================================
function app::scaffold() { "framework::$(app::framework)::scaffold" "${1:-$(ctx::root)}"; }
function app::init() { "framework::$(app::framework)::init" "$@"; }
function app::config() { "framework::$(app::framework)::config" "$@"; }
function app::console() { "framework::$(app::framework)::console" "$@"; }
function app::resolve_env() { "framework::$(app::framework)::resolve_env" "$@"; }
function app::install_vendors() { "framework::$(app::framework)::install_vendors"; }
function app::vendor_skip_message() { "framework::$(app::framework)::vendor_skip_message"; }
function app::vhost_template_path() { "framework::$(app::framework)::vhost_template_path"; }
function app::exists() { [[ -f "$(ctx::root)/composer.json" ]]; }
function app::init_skip_message() { "framework::$(app::framework)::init_skip_message" "$@"; }
function app::config_skip_message() { "framework::$(app::framework)::config_skip_message" "$@"; }
function app::post_init_hint() { "framework::$(app::framework)::post_init_hint"; }