#!/usr/bin/env bash # framework/laravel.module.sh # # Laravel framework implementation. # Implements the framework:: interface for Laravel projects. # ============================================ # Skip messages # ============================================ function framework::laravel::init_skip_message() { echo "Skipping Laravel bootstrap (--skip-framework-init)"; } function framework::laravel::config_skip_message() { echo "Skipping Laravel config (--skip-framework-config)"; } function framework::laravel::vendor_skip_message() { echo "Skipping Vendors (--skip-vendors)"; } # ============================================ # Scaffold # ============================================ function framework::laravel::scaffold() { local target="$1" log::run_step env "Building Laravel application (${target})..." \ composer::run_isolated create-project laravel/laravel "$target" --no-install } # ============================================ # Init # ============================================ function framework::laravel::init() { local env="$1" local laravel_env laravel_env="$(framework::laravel::resolve_env "$env")" log::run_step env "Bootstrapping Laravel (${laravel_env})..." \ framework::laravel::_write_env_file "$env" } # ============================================ # Config # ============================================ function framework::laravel::config() { log::run_step env "Generating Laravel config cache..." \ framework::laravel::console config:cache log::run_step env "Generating Laravel route cache..." \ framework::laravel::console route:cache } # ============================================ # Console # ============================================ function framework::laravel::console_name() { echo "artisan"; } function framework::laravel::console() { runtime::exec php artisan "$@"; } # ============================================ # Resolve env # ============================================ function framework::laravel::resolve_env() { case "$1" in dev) echo "local" ;; qly) echo "staging" ;; prd) echo "production" ;; *) echo "$1" ;; esac } # ============================================ # Vendors # ============================================ function framework::laravel::install_vendors() { log::run_step auth info "Setting Composer auth for domain ${GIT_DOMAIN}..." \ composer::config_auth nocache "$GIT_DOMAIN" "$GIT_AUTH_TOKEN_ID" "$GIT_AUTH_TOKEN_PW" log::run_step fs "Installing vendors..." \ composer::install } # ============================================ # Post-init hint # ============================================ function framework::laravel::post_init_hint() { cat <