these get the basics of the config files right.
# 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"
############################
+++ /dev/null
-
-# 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"
-
-
--- /dev/null
+#!/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
+
+####
+
--- /dev/null
+#!/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"
+
+
+++ /dev/null
-
-source $WORKDIR/config/default-site_avenger.config
-
-APPLICATION_NAME=winterportlibrary
-DOMAIN_NAME="${APPLICATION_NAME}.vm"
-
-
# 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:
# 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"
############################
# 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"
# 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"
############################
# updates a site avenger app.
export WORKDIR="$( \cd "$(\dirname "$0")" && \pwd )" # obtain the script's working directory.
+
source "$WORKDIR/shared_site_mgr.sh"
############################
--- /dev/null
+#!/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}'."
+
--- /dev/null
+#!/bin/bash
+
+# not implemented yet.
+
+