trying a different way to drop perms
[feisty_meow.git] / scripts / site_avenger / powerup.sh
1 #!/bin/bash
2
3 # Author: Kevin Wentworth
4 # Author: Chris Koeritz
5
6 # This script "powers up" a cakephp site by running the database migrations,
7 # cleaning out the ORM cache, and fixing file permissions.
8 # This script is currently highly specific to site avenger.
9
10 # General Info:
11 #
12 # The naming scheme here is a little complex, but it's basically this...
13 # A git repository is expected to be provided, and we will get all the code
14 # for the web site from there.  The repository is expected to have a single
15 # application "name" and one or more "themes".  By convention, the name
16 # and the theme are often the same.
17 # For example, let's say our app name is "turtle" and our theme name is "box".
18 # The repo is checked out to a folder called "~/apps/turtle".
19 # This script will want to use "turtle" as the app name.
20 # It will have to be told the theme name, but will assume it's 'Turtle' to
21 # start with.  The concept of the theme comes from cakephp.
22
23 export WORKDIR="$( \cd "$(\dirname "$0")" && \pwd )"  # obtain the script's working directory.
24
25 ############################
26
27 function print_instructions()
28 {
29   echo
30   echo "$(basename $0 .sh) [app dirname] [repository] [theme name] "
31 #[user name]
32   echo
33   echo "All parameters are optional, and intelligent guesses for them will be made."
34   echo
35   echo "app dirname: The folder where the app will be stored."
36   echo "repository: The name of the git repository (short version, no URL)."
37   echo "theme name: The name to use for the cakephp theme."
38 #  echo "user name: The name of the user to chown the checkout to."
39   echo
40   exit 0
41 }
42
43 ############################
44
45 # main body of script.
46
47 # check for parameters.
48 app_dirname="$1"; shift
49 repo_name="$1"; shift
50 theme_name="$1"; shift
51 #user_name="$1"; shift
52
53 #echo "*** user name is $user_name"
54
55 if [ "$app_dirname" == "-help" -o "$app_dirname" == "--help" ]; then
56   print_instructions
57 fi
58
59 source "$WORKDIR/shared_site_mgr.sh"
60
61 sep
62
63 check_application_dir "$APPLICATION_DIR"
64
65 # find proper webroot where the site will be initialized.
66 if [ -z "$app_dirname" ]; then
67   # no dir was passed, so guess it.
68   find_app_folder "$APPLICATION_DIR"
69 else
70   test_app_folder "$APPLICATION_DIR" "$app_dirname"
71 fi
72
73 # where we expect to find our checkout folder underneath.
74 full_app_dir="$APPLICATION_DIR/$app_dirname"
75
76 # use our default values for the repository and theme if they're not provided.
77 if [ -z "$repo_name" ]; then
78   repo_name="$app_dirname"
79 fi
80 if [ -z "$theme_name" ]; then
81   theme_name="$(capitalize_first_char ${app_dirname})"
82 fi
83
84 echo "Repository: $repo_name"
85 echo "Theme name: $theme_name"
86 sep
87
88 echo in powerup before update repo with:
89 var CHECKOUT_DIR_NAME DEFAULT_REPOSITORY_ROOT
90
91 # this should set the site_store_path variable if everything goes well.
92 update_repo "$full_app_dir" "$CHECKOUT_DIR_NAME" "$DEFAULT_REPOSITORY_ROOT" "$repo_name"
93 test_or_die "Updating the repository storage directory"
94
95 # update the site to load dependencies.
96 sep
97 composer_repuff "$site_store_path"
98 test_or_die "Installing site dependencies with composer"
99
100 # set up the symbolic links needed to achieve siteliness.
101 sep
102
103 create_site_links "$site_store_path" "$theme_name"
104
105 sep
106
107 #if [ ! -z "$user_name" ]; then
108 #  echo "Chowning the apps folder to be owned by: $user_name"
109 ##hmmm: have to hope for now for standard group named after user 
110 #  chown -R "$user_name:$user_name" "$APPLICATION_DIR"
111 #  test_or_die "Chowning $APPLICATION_DIR to be owned by $user_name"
112 #fi
113
114 sep
115
116
117 echo "Finished powering up the site in '${app_dirname}'."
118