1
0
Fork 0
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:
Yann 2017-03-02 11:38:35 +01:00
commit ccbb05f5d0
3 changed files with 63 additions and 33 deletions

View file

@ -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/*

View file

@ -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"

View file

@ -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/