From d1413a80a384c0849c18466ff06d3054de7fc2f6 Mon Sep 17 00:00:00 2001 From: Chris Koeritz Date: Thu, 9 Nov 2017 17:02:02 -0500 Subject: [PATCH] very tasty changes indeed these get the basics of the config files right. --- scripts/site_avenger/avcoreup.sh | 1 + .../config/default-site_avenger.config | 23 ----- scripts/site_avenger/config/default.app | 36 ++++++++ scripts/site_avenger/config/mapsdemo.app | 10 +++ .../config/winterportlibrary.config | 7 -- scripts/site_avenger/powerup.sh | 3 +- scripts/site_avenger/shared_site_mgr.sh | 2 +- scripts/site_avenger/sitepush.sh | 1 + scripts/site_avenger/siteup.sh | 1 + scripts/site_avenger/standup.sh | 86 +++++++++++++++++++ scripts/site_avenger/teardown.sh | 5 ++ 11 files changed, 142 insertions(+), 33 deletions(-) delete mode 100644 scripts/site_avenger/config/default-site_avenger.config create mode 100644 scripts/site_avenger/config/default.app create mode 100644 scripts/site_avenger/config/mapsdemo.app delete mode 100644 scripts/site_avenger/config/winterportlibrary.config create mode 100644 scripts/site_avenger/standup.sh create mode 100644 scripts/site_avenger/teardown.sh diff --git a/scripts/site_avenger/avcoreup.sh b/scripts/site_avenger/avcoreup.sh index 0aeae721..6462dea2 100644 --- a/scripts/site_avenger/avcoreup.sh +++ b/scripts/site_avenger/avcoreup.sh @@ -6,6 +6,7 @@ # updates just the site avenger core portion of an app. export WORKDIR="$( \cd "$(\dirname "$0")" && \pwd )" # obtain the script's working directory. + source "$WORKDIR/shared_site_mgr.sh" ############################ diff --git a/scripts/site_avenger/config/default-site_avenger.config b/scripts/site_avenger/config/default-site_avenger.config deleted file mode 100644 index 4b57ebae..00000000 --- a/scripts/site_avenger/config/default-site_avenger.config +++ /dev/null @@ -1,23 +0,0 @@ - -# this config file provides the default values for the variables used in our site management scripts. - -# basic information... -APPLICATION_DIR="$HOME/apps" -DEFAULT_REPOSITORY_ROOT="git@github.com:kwentworth" -CHECKOUT_DIR_NAME="avenger5" - -# most config files will only need to override things below this line. -# they should include the basic configs using this code: -# source $WORKDIR/config/default-site_avenger.config -###################################################################### - -# deployment information... -APPLICATION_NAME=mapsdemo - -# change this if the site is on the "real" internet. otherwise, for any -# sites that are served from the cakelampvm.com vm, the derived config -# files can just repeat this code. they *MUST* include it though, since -# it needs to see their version of the APPLICATION_NAME variable. -DOMAIN_NAME="${APPLICATION_NAME}.vm" - - diff --git a/scripts/site_avenger/config/default.app b/scripts/site_avenger/config/default.app new file mode 100644 index 00000000..4036883e --- /dev/null +++ b/scripts/site_avenger/config/default.app @@ -0,0 +1,36 @@ +#!/bin/bash + +# this config file provides the default values for the variables used in our site management scripts. + +#### + +# basic information that is constant for all site avenger sites. + +APPLICATION_DIR="$HOME/apps" +DEFAULT_REPOSITORY_ROOT="git@github.com:kwentworth" +CHECKOUT_DIR_NAME="avenger5" + +#### + +# config files for site avenger apps usually override nothing, since we +# auto-construct the app name and domain. but if they do need to override +# anything, it will be below this point in the file. +# the derived config file should include the basic configs like so: +# +# source "$WORKDIR/config/default.app" + +#### + +# deployment information for the application / site. + +APPLICATION_NAME="$(basename "$SITE_MANAGEMENT_CONFIG_FILE" .app)" + +echo app name was computed as $APPLICATION_NAME + +# change this if the site is on the "real" internet. +DOMAIN_NAME="$(basename "$SITE_MANAGEMENT_CONFIG_FILE" .app).vm" + +echo domain name was computed as $DOMAIN_NAME + +#### + diff --git a/scripts/site_avenger/config/mapsdemo.app b/scripts/site_avenger/config/mapsdemo.app new file mode 100644 index 00000000..a2bca519 --- /dev/null +++ b/scripts/site_avenger/config/mapsdemo.app @@ -0,0 +1,10 @@ +#!/bin/bash + +# a special override for the mapsdemo site, which we want to put in as +# a subdomain of the cakelampvm domain. + +source "$WORKDIR/config/default.app" + +DOMAIN_NAME="${APPLICATION_NAME}.cakelampvm.com" + + diff --git a/scripts/site_avenger/config/winterportlibrary.config b/scripts/site_avenger/config/winterportlibrary.config deleted file mode 100644 index 1365e422..00000000 --- a/scripts/site_avenger/config/winterportlibrary.config +++ /dev/null @@ -1,7 +0,0 @@ - -source $WORKDIR/config/default-site_avenger.config - -APPLICATION_NAME=winterportlibrary -DOMAIN_NAME="${APPLICATION_NAME}.vm" - - diff --git a/scripts/site_avenger/powerup.sh b/scripts/site_avenger/powerup.sh index 60c27783..a72e06f1 100644 --- a/scripts/site_avenger/powerup.sh +++ b/scripts/site_avenger/powerup.sh @@ -5,8 +5,6 @@ # This script "powers up" a cakephp site by running the database migrations, # cleaning out the ORM cache, and fixing file permissions. -# Note that the mysql database must already exist and allow permissions to -# the configured username/password in config/app.php. # This script is currently highly specific to site avenger. # General Info: @@ -23,6 +21,7 @@ # start with. The concept of the theme comes from cakephp. export WORKDIR="$( \cd "$(\dirname "$0")" && \pwd )" # obtain the script's working directory. + source "$WORKDIR/shared_site_mgr.sh" ############################ diff --git a/scripts/site_avenger/shared_site_mgr.sh b/scripts/site_avenger/shared_site_mgr.sh index cef784e5..580b896d 100644 --- a/scripts/site_avenger/shared_site_mgr.sh +++ b/scripts/site_avenger/shared_site_mgr.sh @@ -14,7 +14,7 @@ source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" # get our configuration loaded. export SITE_MANAGEMENT_CONFIG_FILE if [ -z "$SITE_MANAGEMENT_CONFIG_FILE" ]; then - SITE_MANAGEMENT_CONFIG_FILE="$WORKDIR/config/default-site_avenger.config" + SITE_MANAGEMENT_CONFIG_FILE="$WORKDIR/config/default.app" fi source "$SITE_MANAGEMENT_CONFIG_FILE" test_or_die "loading site management configuration from: $SITE_MANAGEMENT_CONFIG_FILE" diff --git a/scripts/site_avenger/sitepush.sh b/scripts/site_avenger/sitepush.sh index 22574e27..b2a7de2d 100644 --- a/scripts/site_avenger/sitepush.sh +++ b/scripts/site_avenger/sitepush.sh @@ -6,6 +6,7 @@ # checks the chosen site into the online git repository. export WORKDIR="$( \cd "$(\dirname "$0")" && \pwd )" # obtain the script's working directory. + source "$WORKDIR/shared_site_mgr.sh" ############################ diff --git a/scripts/site_avenger/siteup.sh b/scripts/site_avenger/siteup.sh index e0183dea..826d7d03 100644 --- a/scripts/site_avenger/siteup.sh +++ b/scripts/site_avenger/siteup.sh @@ -6,6 +6,7 @@ # updates a site avenger app. export WORKDIR="$( \cd "$(\dirname "$0")" && \pwd )" # obtain the script's working directory. + source "$WORKDIR/shared_site_mgr.sh" ############################ diff --git a/scripts/site_avenger/standup.sh b/scripts/site_avenger/standup.sh new file mode 100644 index 00000000..3bb327f2 --- /dev/null +++ b/scripts/site_avenger/standup.sh @@ -0,0 +1,86 @@ +#!/bin/bash + +# Author: Chris Koeritz + +# This is the full orchestrator for bringing up a web site using our site +# management scripts. So far, the scripts rely on at least php. The support +# is much more powerful if the site is based on cakephp and site avenger. + +export WORKDIR="$( \cd "$(\dirname "$0")" && \pwd )" # obtain the script's working directory. + +source "$WORKDIR/shared_site_mgr.sh" + +############################ + +function print_instructions() +{ + echo + echo "$(basename $0 .sh) {app name}" + echo + echo " +app name: The app name parameter is mandatory. The configuration file for +this script will be derived from the app name (e.g. if the app name is MyApp, +then the config file will be 'MyApp.config'). The config files are by +convention stored in the 'config' directory. The configuration file can be +overridden by setting the SITE_MANAGEMENT_CONFIG_FILE environment variable." + exit 0 +} + +############################ + +# main body of script. + +# check for parameters. +app_dirname="$1"; shift +repo_name="$1"; shift +theme_name="$1"; shift + +if [ "$app_dirname" == "-help" -o "$app_dirname" == "--help" ]; then + print_instructions +fi + +sep + +check_application_dir "$APPLICATION_DIR" + +# find proper webroot where the site will be initialized. +if [ -z "$app_dirname" ]; then + # no dir was passed, so guess it. + find_app_folder "$APPLICATION_DIR" +else + test_app_folder "$APPLICATION_DIR" "$app_dirname" +fi + +# where we expect to find our checkout folder underneath. +full_app_dir="$APPLICATION_DIR/$app_dirname" + +# use our default values for the repository and theme if they're not provided. +if [ -z "$repo_name" ]; then + repo_name="$app_dirname" +fi +if [ -z "$theme_name" ]; then + theme_name="$(capitalize_first_char ${app_dirname})" +fi + +echo "Repository: $repo_name" +echo "Theme name: $theme_name" +sep + +# this should set the site_store_path variable if everything goes well. +update_repo "$full_app_dir" "$CHECKOUT_DIR_NAME" "$DEFAULT_REPOSITORY_ROOT" "$repo_name" +test_or_die "Updating the repository storage directory" + +# update the site to load dependencies. +sep +composer_repuff "$site_store_path" +test_or_die "Installing site dependencies with composer" + +# set up the symbolic links needed to achieve siteliness. +sep + +create_site_links "$site_store_path" "$theme_name" + +sep + +echo "Finished powering up the site in '${app_dirname}'." + diff --git a/scripts/site_avenger/teardown.sh b/scripts/site_avenger/teardown.sh new file mode 100644 index 00000000..c992c4fa --- /dev/null +++ b/scripts/site_avenger/teardown.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# not implemented yet. + + -- 2.34.1