mirror of
https://github.com/yweber/lodel2.git
synced 2026-09-14 13:50:28 +02:00
Enhancement in create_multisite.sh script
Now create the full FS structure associated with a multisite instance
This commit is contained in:
parent
3e8b6bc30d
commit
ccbb05f5d0
3 changed files with 63 additions and 33 deletions
|
|
@ -10,11 +10,17 @@ EXTRA_DIST = create_instance.sh create_multisite.sh mass_deploy.sh
|
|||
lodel2conf_DATA = mass_deploy.cfg
|
||||
lodel2confdir=$(sysconfdir)/lodel2
|
||||
lodel2statedir=$(localstatedir)/lodel2
|
||||
lodel2datadir = $(datadir)/lodel2
|
||||
install_model_dir = $(lodel2datadir)/install_model
|
||||
multisite_install_model_dir = $(lodel2datadir)/multisite_install_model
|
||||
|
||||
do_subst = sed -e 's,\[@\]PKGPYTHONDIR\[@\],$(pkgpythondir),g' \
|
||||
-e 's,\[@\]LODEL2_DATADIR\[@\],$(lodel2datadir),g' \
|
||||
-e 's,\[@\]LODEL2_PROGSDIR\[@\],$(lodel2_scripts_dir),g' \
|
||||
-e 's,\[@\]LODEL2_CONFDIR\[@\],$(lodel2confdir),g' \
|
||||
-e 's,\[@\]LODEL2_VARDIR\[@\],$(lodel2statedir),g' \
|
||||
-e 's,\[@\]INSTALLMODEL_DIR\[@\],$(install_model_dir),g' \
|
||||
-e 's,\[@\]MULTISITE_INSTALLMODEL_DIR\[@\],$(multisite_install_model_dir),g' \
|
||||
-e 's,\[@\]LODELSITES_DATA_DIRNAME\[@\],$(lodel2_multisite_data_dirname),g' \
|
||||
-e 's,\[@\]LODELSITES_CTX_DIRNAME\[@\],$(lodel2_multisite_ctx_dirname),g'
|
||||
|
||||
|
|
@ -36,4 +42,4 @@ create_multisite: create_multisite.sh
|
|||
|
||||
install-data-hook:
|
||||
chmod +x ${DESTDIR}$(datadir)/lodel2/scripts/*
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
usage() {
|
||||
cat <<HELP_USAGE
|
||||
Usage: $(basename $0) [options...] lodelsites_name [instance_dir] [install_path] [install_tpl]
|
||||
Usage: $(basename $0) lodelsites_name [instance_dir] [install_path] [install_tpl]
|
||||
lodelsites_name: name of the lodelsites instance, only lower case alphas, numerics, -, _, are allowed
|
||||
instance_dir: path where the data and context folders will be set (defaults to /var/lodel2)
|
||||
Options:
|
||||
|
|
@ -11,40 +11,66 @@ HELP_USAGE
|
|||
exit 1
|
||||
}
|
||||
|
||||
conf_file_subst() {
|
||||
#Make substitution in file given as argument
|
||||
#$1 filename
|
||||
#$2 instance_name
|
||||
sed -i "s/@@@INSTANCE_NAME@@@/$2/g" $1
|
||||
}
|
||||
|
||||
[[ `grep -w "\-\-help\|\-.*h.*" <<< $@` ]] && usage
|
||||
|
||||
|
||||
[[ -z $1 ]] && echo "Not enough arguments" && usage
|
||||
|
||||
[ $# -lt 1 -o $# -gt 4 ] && usage
|
||||
|
||||
name="$1"
|
||||
install_dir=${2:=[@]LODEL2_VARDIR[@]}
|
||||
install_dir=$2
|
||||
install_dir=${install_dir:=[@]LODEL2_VARDIR[@]}
|
||||
install_tpl="$3"
|
||||
install_tpl=${install_tpl:=[@]MULTISITE_INSTALLMODEL_DIR[@]}
|
||||
context_dir_name="[@]LODELSITES_CTX_DIRNAME[@]"
|
||||
datas_dir_name="[@]LODELSITES_DATA_DIRNAME[@]"
|
||||
#Inconsistency with the fact that we can give the install template in argument
|
||||
mono_model=[@]INSTALLMODEL_DIR[@]
|
||||
|
||||
|
||||
[[ -d "$install_dir/$name" ]] && echo "A multisite install $name already exists!" && usage
|
||||
|
||||
echo "$MULTISITE_DATADIR"
|
||||
lodelsites_ctx_dir="$install_dir/$name/$context_dir_name"
|
||||
lodelsites_data_dir="$install_dir/$name/$datas_dir_name"
|
||||
|
||||
|
||||
[[ ! "$name" =~ ^[abcdefghijklmnopqrstuvwxyz0-9_-]+$ ]] &&
|
||||
echo "Only lowercase alpha, numerics, '-', '_', are allowed in name" >&2 &&
|
||||
if [[ ! "$name" =~ ^[abcdefghijklmnopqrstuvwxyz0-9_-]+$ ]]
|
||||
then
|
||||
echo -e "Only lowercase alpha, numerics, '-', '_', are allowed in name\n" >&2
|
||||
usage
|
||||
fi
|
||||
if [ -d "$install_dir/$name" ]
|
||||
then
|
||||
echo "A multisite install $name already exists\n" >&2
|
||||
usage
|
||||
fi
|
||||
|
||||
|
||||
echo "Creating directories"
|
||||
instance_dir="$install_dir/$name"
|
||||
lodelsites_ctx_dir="$instance_dir/$context_dir_name"
|
||||
lodelsites_data_dir="$instance_dir/$datas_dir_name"
|
||||
|
||||
echo "Creating multisite instance directory from template"
|
||||
mkdir -pv $instance_dir
|
||||
#Copy both EM for lodelsites and handled sites
|
||||
cp -Rv $install_tpl/*.pickle "$instance_dir"
|
||||
#Creating both conf directory
|
||||
for dname in "lodelsites.conf.d" "server_conf.d"
|
||||
do
|
||||
cp -Rv $install_tpl/$dname $instance_dir
|
||||
#make subst in configuration files
|
||||
for confname in $instance_dir/$dname/*
|
||||
do
|
||||
conf_file_subst $confname $name
|
||||
done
|
||||
done
|
||||
#Using monosite files to populate the instance directory
|
||||
for fname in "Makefile" "lodel_admin.py"
|
||||
do
|
||||
ln -vs $mono_model/$fname $instance_dir/$fname
|
||||
done
|
||||
|
||||
mkdir -pv "$lodelsites_ctx_dir"
|
||||
mkdir -pv "$lodelsites_data_dir"
|
||||
|
||||
|
||||
echo "Modularization of the lodelsites context dir"
|
||||
echo "Creating $lodelsites_ctx_dir/__init__.py"
|
||||
> "$lodelsites_ctx_dir/__init__.py"
|
||||
echo "created '$lodelsites_ctx_dir/__init__.py' file"
|
||||
|
||||
|
||||
#echo cp -R $install_tpl "${install_dir}/$name"
|
||||
echo "Multisite $name created in $install_dir"
|
||||
echo -e "Now you can :\ncd $instance_dir && make dyncode"
|
||||
|
|
|
|||
|
|
@ -16,16 +16,14 @@ install_model__DATA = install_model/loader.py \
|
|||
|
||||
multisite_install_model_dir = $(lodel2datadir)/multisite_install_model
|
||||
multisite_install_model__DATA = multisite_install_model/lodel_admin.py \
|
||||
multisite_install_model/Makefile
|
||||
multisite_install_model/Makefile \
|
||||
multisite_install_model/sites_em.pickle \
|
||||
multisite_install_model/editorial_model.pickle
|
||||
|
||||
#Forgotten files in git commits ??
|
||||
multisite_install_model:
|
||||
$(MKDIR_P) multisite_install_model
|
||||
multisite_install_model/lodel_admin.py: multisite_install_model install_model/lodel_admin.py
|
||||
cp install_model/lodel_admin.py multisite_install_model/lodel_admin.py
|
||||
multisite_install_model/Makefile: multisite_install_model install_model/Makefile
|
||||
cp install_model/Makefile multisite_install_model/Makefile
|
||||
|
||||
multisite_lodelsites_conf_dir = $(multisite_install_model_dir)/lodelsites.conf.d
|
||||
multisite_lodelsites_conf__DATA = multisite_install_model/lodelsites.conf.d/lodel2.ini
|
||||
multisite_server_conf_dir = $(multisite_install_model_dir)/server_conf.d
|
||||
multisite_server_conf__DATA = multisite_install_model/server_conf.d/lodel2.ini
|
||||
|
||||
|
||||
slim_conf_model_dir = $(install_model_dir)/conf.d/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue