123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #! /usr/bin/env sh
-
- apache_dir=/etc/apache2/sites-available/
- conf_dir=/etc/sitegen/
- site_dir=/var/
-
- hooks_dir=/etc/sitegen/hooks.d/
- hooks_dir_local=~/.sitegen/hooks.d/
-
- makeDir()
- {
- mkdir -p "$1"
- if [ $? -ne 0 ]
- then
- exit 4
- fi
- }
-
- getPath()
- {
- readlink -m "$1"
- }
-
- applyHooks()
- {
- dir="$1"
- if [ -d ${dir} ]
- then
- for file in $(find ${dir} | sort) ;
- do
- echo "Applying ${file}"
- . "${file}"
- done
- else
- echo "No hooks found in ${dir}"
- fi
- }
-
-
- if [ $# -eq 0 ] || [ $# -gt 2 ] || [ "$1" = "--help" ]
- then
- echo "Usage:" $(basename $0) "hostname [config=default]" >&2
- exit 1
- fi
-
- host="$1"
- if [ $# -eq 2 ]
- then
- conf="$2"
- else
- conf="default"
- fi
-
- conf_conf=$(getPath "${conf_dir}/${conf}.conf")
- conf_include=$(getPath "${conf_dir}/${conf}.include")
-
- site_conf=$(getPath "${apache_dir}/${host}.conf")
- site_include=$(getPath "${apache_dir}/${host}.include")
-
- root_dir=$(getPath "${site_dir}/${host}")
-
- sed_host="s:%%HOST%%:${host}:g"
- sed_root="s:%%ROOT%%:${root_dir}:g"
-
- if [ ! -f "${conf_conf}" ] || [ ! -f "${conf_include}" ]
- then
- echo "Configuration file ${conf_conf} and/or ${conf_include} error: No such file" >&2
- exit 2
- fi
-
- if [ -f "${site_conf}" ] || [ -f "${site_include}" ]
- then
- echo "Host already exists: ${site_conf} and/or ${site_include}" >&2
- exit 3
- fi
-
- makeDir "${root_dir}"
- makeDir "${apache_dir}"
-
- sed -e "${sed_host}" -e "${sed_root}" "${conf_conf}" > "${site_conf}"
- sed -e "${sed_host}" -e "${sed_root}" "${conf_include}" > "${site_include}"
-
- applyHooks ${hooks_dir}
- applyHooks ${hooks_dir_local}
|