Browse Source

update des bin

pull/4/head
Fanch 1 year ago
parent
commit
7ac5040974
  1. 20
      bin/.initAgora-completion.bash
  2. 20
      bin/.initCloud-completion.bash
  3. 20
      bin/.initWP-completion.bash
  4. 20
      bin/.initWiki-completion.bash
  5. 315
      bin/checkEnvFiles.sh
  6. 11
      bin/checkEnvPassword.sh
  7. 24
      bin/configKaz.sh
  8. 11
      bin/configKaz.sh.templates
  9. 92
      bin/initAgora.sh
  10. 81
      bin/initCloud.sh
  11. 74
      bin/initWP.sh
  12. 118
      bin/initWiki.sh

20
bin/.initAgora-completion.bash

@ -0,0 +1,20 @@
#/usr/bin/env bash
_initAgora_completion () {
KAZ_ROOT=$(cd "$(dirname ${COMP_WORDS[0]})"/..; pwd)
COMPREPLY=()
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
setKazVars
local cword=${COMP_CWORD} cur=${COMP_WORDS[COMP_CWORD]}
case "${cword}" in
1)
# orga name
local available_orga=$("${KAZ_BIN_DIR}/kazList.sh" "service" "agora" 2>/dev/null)
COMPREPLY=($(compgen -W "${available_orga}" -- "${cur}"))
;;
*)
;;
esac
return 0
}
complete -F _initAgora_completion initAgora.sh

20
bin/.initCloud-completion.bash

@ -0,0 +1,20 @@
#/usr/bin/env bash
_initCloud_completion () {
KAZ_ROOT=$(cd "$(dirname ${COMP_WORDS[0]})"/..; pwd)
COMPREPLY=()
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
setKazVars
local cword=${COMP_CWORD} cur=${COMP_WORDS[COMP_CWORD]}
case "${cword}" in
1)
# orga name
local available_orga=$("${KAZ_BIN_DIR}/kazList.sh" "service" "cloud" 2>/dev/null)
COMPREPLY=($(compgen -W "${available_orga}" -- "${cur}"))
;;
*)
;;
esac
return 0
}
complete -F _initCloud_completion initCloud.sh

20
bin/.initWP-completion.bash

@ -0,0 +1,20 @@
#/usr/bin/env bash
_initWP_completion () {
KAZ_ROOT=$(cd "$(dirname ${COMP_WORDS[0]})"/..; pwd)
COMPREPLY=()
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
setKazVars
local cword=${COMP_CWORD} cur=${COMP_WORDS[COMP_CWORD]}
case "${cword}" in
1)
# orga name
local available_orga=$("${KAZ_BIN_DIR}/kazList.sh" "service" "wp" 2>/dev/null)
COMPREPLY=($(compgen -W "${available_orga}" -- "${cur}"))
;;
*)
;;
esac
return 0
}
complete -F _initWP_completion initWP.sh

20
bin/.initWiki-completion.bash

@ -0,0 +1,20 @@
#/usr/bin/env bash
_initWiki_completion () {
KAZ_ROOT=$(cd "$(dirname ${COMP_WORDS[0]})"/..; pwd)
COMPREPLY=()
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
setKazVars
local cword=${COMP_CWORD} cur=${COMP_WORDS[COMP_CWORD]}
case "${cword}" in
1)
# orga name
local available_orga=$("${KAZ_BIN_DIR}/kazList.sh" "service" "wiki" 2>/dev/null)
COMPREPLY=($(compgen -W "${available_orga}" -- "${cur}"))
;;
*)
;;
esac
return 0
}
complete -F _initWiki_completion initWiki.sh

315
bin/checkEnvFiles.sh

@ -0,0 +1,315 @@
#!/bin/bash
export KAZ_ROOT=$(cd "$(dirname $0)/.."; pwd)
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
setKazVars
RUN_PASS_DIR="secret"
TMPL_PASS_DIR="secret.tmpl"
RUN_PASS_FILE="${RUN_PASS_DIR}/SetAllPass.sh"
TMPL_PASS_FILE="${TMPL_PASS_DIR}/SetAllPass.sh"
NEED_GEN=
########################################
usage () {
echo "Usage: $0 [-n] [-h]"
echo " -h help"
exit 1
}
case "$1" in
'-h' | '-help' )
usage
;;
esac
[ "$#" -eq 0 ] || usage
########################################
# check system
for prg in kompare; do
if ! type "${prg}" > /dev/null; then
printKazError "$0 need ${prg}"
echo "please run \"apt-get install ${prg}\""
exit
fi
done
cd "${KAZ_ROOT}"
########################################
# get lvalues in script
getVars () {
# $1 : filename
grep "^[^#]*=" $1 | sed 's/\([^=]*\).*/\1/' | sort -u
}
# get lvalues in script
getSettedVars () {
# $1 : filename
grep "^[^#]*=..*" $1 | grep -v '^[^#]*=".*--clean_val--.*"' | grep -v '^[^#]*="${' | sort -u
}
getVarFormVal () {
# $1 searched value
# $2 filename
grep "^[^#]*=$1" $2 | sed 's/\s*\([^=]*\).*/\1/'
}
########################################
# synchronized SetAllPass.sh (find missing lvalues)
updatePassFile () {
# $1 : ref filename
# $2 : target filename
REF_FILE="$1"
TARGET_FILE="$2"
NEED_UPDATE=
while : ; do
declare -a listRef listTarget missing
listRef=($(getVars "${REF_FILE}"))
listTarget=($(getVars "${TARGET_FILE}"))
missing=($(comm -23 <(printf "%s\n" ${listRef[@]}) <(printf "%s\n" ${listTarget[@]})))
if [ -n "${missing}" ]; then
echo "missing vars in ${YELLOW}${BOLD}${TARGET_FILE}${NC}:${RED}${BOLD}" ${missing[@]} "${NC}"
read -p "Do you want to add them? [y/n]: " yn
case $yn in
""|[Yy]*)
emacs "${REF_FILE}" "${TARGET_FILE}"
NEED_UPDATE=true
break
;;
[Nn]*)
break
;;
esac
else
break
fi
done
}
updatePassFile "${TMPL_PASS_FILE}" "${RUN_PASS_FILE}"
[ -n "${NEED_UPDATE}" ] && NEED_GEN=true
updatePassFile "${RUN_PASS_FILE}" "${TMPL_PASS_FILE}"
########################################
# check empty pass in TMPL_PASS_FILE
declare -a settedVars
settedVars=($(getSettedVars "${TMPL_PASS_FILE}"))
if [ -n "${settedVars}" ]; then
echo "unclear password in ${YELLOW}${BOLD}${TMPL_PASS_FILE}${NC}:${BLUE}${BOLD}"
for var in ${settedVars[@]}; do
echo -e "\t${var}"
done
echo "${NC}"
read -p "Do you want to clear them? [y/n]: " yn
case $yn in
""|[Yy]*)
emacs "${TMPL_PASS_FILE}"
;;
esac
fi
########################################
# check new files env-*
createMissingEnv () {
# $1 : ref dir
# $2 : target dir
REF_DIR="$1"
TARGET_DIR="$2"
NEED_UPDATE=
declare -a listRef listTarget missing
listRef=($(cd "${REF_DIR}"; ls -1 env-* | grep -v '~$'))
listTarget=($(cd "${TARGET_DIR}"; ls -1 env-* | grep -v '~$'))
missing=($(comm -23 <(printf "%s\n" ${listRef[@]}) <(printf "%s\n" ${listTarget[@]})))
for envFile in ${missing[@]}; do
read -p "Do you want to create ${GREEN}${BOLD}${TARGET_DIR}/${envFile}${NC}? [y/n]: " yn
case $yn in
""|[Yy]*)
cp "${REF_DIR}/${envFile}" "${TARGET_DIR}/${envFile}"
NEED_UPDATE=true
;;
esac
done
}
createMissingEnv "${RUN_PASS_DIR}" "${TMPL_PASS_DIR}"
[ -n "${NEED_UPDATE}" ] && NEED_GEN=true
createMissingEnv "${TMPL_PASS_DIR}" "${RUN_PASS_DIR}"
[ -n "${NEED_UPDATE}" ] && NEED_GEN=true
########################################
# check missing values in env-* between RUN and TMPL
declare -a listTmpl listRun listCommonFiles
listTmplFiles=($(cd "${TMPL_PASS_DIR}"; ls -1 env-* | grep -v '~$'))
listRunFiles=($(cd "${RUN_PASS_DIR}"; ls -1 env-* | grep -v '~$'))
listCommonFiles=($(comm -3 <(printf "%s\n" ${listTmplFiles[@]}) <(printf "%s\n" ${listRunFiles[@]})))
for envFile in ${listCommonFiles[@]}; do
while : ; do
TMPL_FILE="${TMPL_PASS_DIR}/${envFile}"
RUN_FILE="${RUN_PASS_DIR}/${envFile}"
declare -a listRef list2Target missingInRun missingInTmpl
listTmplVars=($(getVars "${TMPL_FILE}"))
listRunVars=($(getVars "${RUN_FILE}"))
missingInTmpl=($(comm -23 <(printf "%s\n" ${listTmplVars[@]}) <(printf "%s\n" ${listRunVars[@]})))
missingInRun=($(comm -13 <(printf "%s\n" ${listTmplVars[@]}) <(printf "%s\n" ${listRunVars[@]})))
if [ -n "${missingInTmpl}" ] || [ -n "${missingInRun}" ]; then
[ -n "${missingInTmpl}" ] &&
echo "missing vars in ${YELLOW}${BOLD}${TMPL_FILE}${NC}:${RED}${BOLD}" ${missingInTmpl[@]} "${NC}"
[ -n "${missingInRun}" ] &&
echo "missing vars in ${YELLOW}${BOLD}${RUN_FILE}${NC}:${RED}${BOLD}" ${missingInRun[@]} "${NC}"
read -p "Do you want to add them? [y/n]: " yn
case $yn in
""|[Yy]*)
emacs "${TMPL_FILE}" "${RUN_FILE}"
[ -n "${missingInTmpl}" ] && NEED_GEN=true
break
;;
[Nn]*)
break
;;
esac
else
break
fi
done
done
########################################
# check empty pass in env-*
for envFile in $(ls -1 "${TMPL_PASS_DIR}/"env-* | grep -v '~$'); do
settedVars=($(getSettedVars "${envFile}"))
if [ -n "${settedVars}" ]; then
echo "unclear password in ${GREEN}${BOLD}${envFile}${NC}:${BLUE}${BOLD}"
for var in ${settedVars[@]}; do
echo -e "\t${var}"
done
echo "${NC}"
read -p "Do you want to clear them? [y/n]: " yn
case $yn in
""|[Yy]*)
emacs "${envFile}"
;;
esac
fi
done
########################################
# check extention in dockers.env
declare -a missing
missing=($(for DIR in "${RUN_PASS_DIR}" "${TMPL_PASS_DIR}"; do
for envFile in $(ls -1 "${DIR}/"env-* | grep -v '~$'); do
val="${envFile#*env-}"
varName=$(getVarFormVal "${val}" "${DOCKERS_ENV}")
if [ -z "${varName}" ]; then
echo "${val}"
fi
done
done | sort -u))
if [ -n "${missing}" ]; then
echo "missing def in ${GREEN}${BOLD}${DOCKERS_ENV}${NC}:${BLUE}${BOLD}"
for var in ${missing[@]}; do
echo -e "\t${var}"
done
echo "${NC}"
read -p "Do you want to add them? [y/n]: " yn
case $yn in
""|[Yy]*)
emacs "${DOCKERS_ENV}"
;;
esac
fi
########################################
# check env-* in updateDockerPassword.sh
missing=($(for DIR in "${RUN_PASS_DIR}" "${TMPL_PASS_DIR}"; do
for envFile in $(ls -1 "${DIR}/"env-* | grep -v '~$'); do
val="${envFile#*env-}"
varName=$(getVarFormVal "${val}" "${DOCKERS_ENV}")
[ -z "${varName}" ] && continue
prefixe=$(grep "^\s*updateEnv.*${varName}" "${KAZ_BIN_DIR}/updateDockerPassword.sh" |
sed 's/\s*updateEnv[^"]*"\([^"]*\)".*/\1/' | sort -u)
if [ -z "${prefixe}" ]; then
echo "${envFile#*/}_(\${KAZ_KEY_DIR}/env-\${"${varName}"})"
fi
done
done | sort -u))
if [ -n "${missing}" ]; then
echo "missing update in ${GREEN}${BOLD}${KAZ_BIN_DIR}/updateDockerPassword.sh${NC}:${BLUE}${BOLD}"
for var in ${missing[@]}; do
echo -e "\t${var}"
done
echo "${NC}"
read -p "Do you want to add them? [y/n]: " yn
case $yn in
""|[Yy]*)
emacs "${KAZ_BIN_DIR}/updateDockerPassword.sh"
;;
esac
fi
########################################
# synchronized SetAllPass.sh and env-*
updateEnvFiles () {
# $1 secret dir
DIR=$1
listRef=($(getVars "${DIR}/SetAllPass.sh"))
missing=($(for envFile in $(ls -1 "${DIR}/"env-* | grep -v '~$'); do
val="${envFile#*env-}"
varName=$(getVarFormVal "${val}" "${DOCKERS_ENV}")
[ -z "${varName}" ] && continue
prefixe=$(grep "^\s*updateEnv.*${varName}" "${KAZ_BIN_DIR}/updateDockerPassword.sh" |
sed 's/\s*updateEnv[^"]*"\([^"]*\)".*/\1/' | sort -u)
[ -z "${prefixe}" ] && continue
listVarsInEnv=($(getVars "${envFile}"))
for var in ${listVarsInEnv[@]}; do
[[ ! " ${listRef[@]} " =~ " ${prefixe}_${var} " ]] && echo "${prefixe}_${var}"
done
# XXX doit exister dans SetAllPass.sh avec le prefixe
done))
if [ -n "${missing}" ]; then
echo "missing update in ${GREEN}${BOLD}${DIR}/SetAllPass.sh${NC}:${BLUE}${BOLD}"
for var in ${missing[@]}; do
echo -e "\t${var}"
done
echo "${NC}"
read -p "Do you want to add them? [y/n]: " yn
case $yn in
""|[Yy]*)
emacs "${DIR}/SetAllPass.sh"
;;
esac
fi
}
updateEnvFiles "${RUN_PASS_DIR}"
updateEnvFiles "${TMPL_PASS_DIR}"
# XXX chercher les variables non utilisées dans les SetAllPass.sh
if [ -n "${NEED_GEN}" ]; then
while : ; do
read -p "Do you want to generate blank values? [y/n]: " yn
case $yn in
""|[Yy]*)
"${KAZ_BIN_DIR}/secretGen.sh"
break
;;
[Nn]*)
break
;;
esac
done
fi
# XXX config/dockers.tmpl.env
# XXX ! vérifier init pour dockers.env

11
bin/checkEnvPassword.sh

@ -0,0 +1,11 @@
#!/bin/bash
KAZ_ROOT=$(cd $(dirname $0)/..; pwd)
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
setKazVars
for filename in "${KAZ_KEY_DIR}/"env-*Serv "${KAZ_KEY_DIR}/"env-*DB; do
if grep -q "^[^#=]*=\s*$" "${filename}" 2>/dev/null; then
echo "${filename}"
fi
done

24
bin/configKaz.sh

@ -0,0 +1,24 @@
#!/bin/sh -e
. /usr/share/debconf/confmodule
db_version 2.0
if [ "$1" = "fset" ]; then
db_fset kaz/mode seen false
db_fset kaz/domain seen false
db_go
fi
if [ "$1" = "reset" ]; then
db_reset kaz/mode
db_reset kaz/domain
db_go
fi
#db_set kaz/domain test
db_title "a b c"
db_input critical kaz/mode
db_input critical kaz/domain
db_go

11
bin/configKaz.sh.templates

@ -0,0 +1,11 @@
Template: kaz/mode
Type: select
Choices: prod, dev, local
Default: local
Description: Mode
Template: kaz/domain
Type: string
Description: domain name
Default: kaz.bzh

92
bin/initAgora.sh

@ -0,0 +1,92 @@
#!/bin/bash
KAZ_ROOT=$(cd $(dirname $0)/..; pwd)
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
setKazVars
cd $(dirname $0)
. "${DOCKERS_ENV}"
available_orga=$("${KAZ_BIN_DIR}/kazList.sh" "service" "agora" 2>/dev/null)
usage () {
echo "Usage: $0 orga${NL}" \
" -h : this help${NL}" \
" -n : simulation${NL}" \
" [orga] : in${NL}" \
" ${CYAN}${available_orga}${NC}${NL}"
exit 1
}
SIMU=
for ARG in $*; do
case "$1" in
-h*) usage ;;
-n) SIMU=echo; shift ;;
*) break;;
esac
done
. ${KAZ_KEY_DIR}/SetAllPass.sh
case "$#" in
0)
# shared
ORGA="Kaz"
agoraName="<common agora>"
DockerServName="${mattermostServName}"
MATTER_URI="${matterHost}.${domain}"
MATTER_URL="${httpProto}://${MATTER_URI}"
VOL_PREFIX="${DOCK_VOL}/mattermost_"
;;
1)
# orga
[[ " ${available_orga} " =~ "$1" ]] || usage
ORGA=${1%-orga}
agoraName="${ORGA}"
DockerServName="${ORGA}-${mattermostServName}"
MATTER_URI="${ORGA}-${matterHost}.${domain}"
MATTER_URL="${httpProto}://${MATTER_URI}"
VOL_PREFIX="${VOL_DIR}/orga_${ORGA}-"
;;
*)
usage
;;
esac
JSON_CONF="${VOL_PREFIX}matterConfig/_data/config.json"
checkDockerRunning "${DockerServName}" "${agoraName}" || exit
getToken(){
curl -i -s -d "{\"login_id\":\"${mattermost_MM_ADMIN_USER}\",\"password\":\"${mattermost_MM_ADMIN_PASSWORD}\"}" "${MATTER_URL}/api/v4/users/login" | grep 'token' | sed 's/token:\s*\(.*\)\s*/\1/' | tr -d '\r'
}
waitUrl "${MATTER_URL}"
[ -z "$(getToken)" ] || exit
printKazMsg "\n *** Premier lancement de Mattermost"
curl -i -d "{\"email\":\"${mattermost_MM_ADMIN_EMAIL}\",\"username\":\"${mattermost_MM_ADMIN_USER}\",\"password\":\"${mattermost_MM_ADMIN_PASSWORD}\",\"allow_marketing\":true}" "${MATTER_URL}/api/v4/users"
waitUrl "${MATTER_URL}"
MM_TOKEN=$(getToken)
curl -i -H "Authorization: Bearer ${MM_TOKEN}" -d "{\"display_name\":\"${ORGA}\",\"name\":\"${ORGA,,}\",\"type\":\"O\"}" "${MATTER_URL}/api/v4/teams"
sed -i \
-e 's|"SiteURL": ".*"|"SiteURL": "'${MATTER_URL}'"|g' \
-e 's|"WebsocketURL": ".*"|"WebsocketURL": "wss://'${MATTER_URI}'"|g' \
-e 's|"AllowCorsFrom": ".*"|"AllowCorsFrom": "'${domain}' '${MATTER_URI}':443 '${MATTER_URI}'"|g' \
-e 's|"ConsoleLevel": ".*"|"ConsoleLevel": "ERROR"|g' \
-e 's|"SendEmailNotifications": false|"SendEmailNotifications": true|g' \
-e 's|"FeedbackEmail": ".*"|"FeedbackEmail": "admin@'${domain}'"|g' \
-e 's|"FeedbackOrganization": ".*"|"FeedbackOrganization": "Cochez la KAZ du libre !"|g' \
-e 's|"ReplyToAddress": ".*"|"ReplyToAddress": "admin@'${domain}'"|g' \
-e 's|"SMTPServer": ".*"|"SMTPServer": "mail.'${domain}'"|g' \
-e 's|"SMTPPort": ".*"|"SMTPPort": "25"|g' \
-e 's|"DefaultServerLocale": ".*"|"DefaultServerLocale": "fr"|g' \
-e 's|"DefaultClientLocale": ".*"|"DefaultClientLocale": "fr"|g' \
-e 's|"AvailableLocales": ".*"|"AvailableLocales": "fr"|g' \
${JSON_CONF}

81
bin/initCloud.sh

@ -0,0 +1,81 @@
#!/bin/bash
KAZ_ROOT=$(cd $(dirname $0)/..; pwd)
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
setKazVars
cd $(dirname $0)
. "${DOCKERS_ENV}"
available_orga=$("${KAZ_BIN_DIR}/kazList.sh" "service" "cloud" 2>/dev/null)
usage () {
echo "Usage: $0 orga${NL}" \
" -h : this help${NL}" \
" -n : simulation${NL}" \
" [orga] : in${NL}" \
" ${CYAN}${available_orga}${NC}${NL}"
exit 1
}
SIMU=
for ARG in $*; do
case "$1" in
-h*) usage ;;
-n) SIMU=echo; shift ;;
*) break;;
esac
done
. ${KAZ_KEY_DIR}/SetAllPass.sh
DNLD_DIR="${KAZ_DNLD_DIR}/dokuwiki"
case "$#" in
0)
# shared
ORGA="Kaz"
cloudName="<common wiki>"
CLOUD_URL="${httpProto}://${cloudHost}.${domain}"
DockerServName="${nextcloudServName}"
VOL_PREFIX="${DOCK_VOL}/cloud_"
;;
1)
# orga
[[ " ${available_orga} " =~ "$1" ]] || usage
ORGA=${1%-orga}
cloudName="${ORGA}"
CLOUD_URL="${httpProto}://${ORGA}-${cloudHost}.${domain}"
DockerServName="${ORGA}-${nextcloudServName}"
VOL_PREFIX="${DOCK_VOL}/orga_${ORGA}-"
;;
*)
usage
;;
esac
PHP_CONF="${VOL_PREFIX}cloudConfig/_data/config.php"
checkDockerRunning "${DockerServName}" "${cloudName}" || exit
if ! grep -q "'installed' => true," "${CONF_PHP}" 2> /dev/null; then
printKazMsg "\n *** Premier lancement de NextCloud de ${cloudName}"
waitUrl "${CLOUD_URL}"
${SIMU} curl -X POST \
-d "install=true" \
-d "adminlogin=${nextcloud_NEXTCLOUD_ADMIN_USER}" \
-d "adminpass=${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}" \
-d "directory=/var/www/html/data" \
-d "dbtype=mysql" \
-d "dbuser=${nextcloud_MYSQL_USER}" \
-d "dbpass=${nextcloud_MYSQL_PASSWORD}" \
-d "dbname=${nextcloud_MYSQL_DATABASE}" \
-d "dbhost=${nextcloud_MYSQL_HOST}" \
-d "install-recommended-apps=true" \
"${CLOUD_URL}"
fi
${SIMU} "${KAZ_ROOT}/bin/updateCloudConf.sh" $1
${SIMU} "${KAZ_ROOT}/bin/updateCloudApp.sh" $1

74
bin/initWP.sh

@ -0,0 +1,74 @@
#!/bin/bash
KAZ_ROOT=$(cd $(dirname $0)/..; pwd)
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
setKazVars
cd $(dirname $0)
. "${DOCKERS_ENV}"
available_orga=$("${KAZ_BIN_DIR}/kazList.sh" "service" "wp" 2>/dev/null)
usage () {
echo "Usage: $0 orga${NL}" \
" -h : this help${NL}" \
" -n : simulation${NL}" \
" [orga] : in${NL}" \
" ${CYAN}${available_orga}${NC}${NL}"
exit 1
}
SIMU=
for ARG in $*; do
case "$1" in
-h*) usage ;;
-n) SIMU=echo; shift ;;
*) break;;
esac
done
. ${KAZ_KEY_DIR}/SetAllPass.sh
case "$#" in
0)
# shared
ORGA="Kaz"
wpName="<common WP>"
DockerServName="${wordpressServName}"
WP_URL="${httpProto}://${wordpressHost}.${domain}"
VOL_PREFIX="${DOCK_VOL}/wordpress_"
;;
1)
# orga
[[ " ${available_orga} " =~ "$1" ]] || usage
ORGA=${1%-orga}
wpName="${ORGA}"
DockerServName="${ORGA}-${wordpressServName}"
WP_URL="${httpProto}://${ORGA}-${wordpressHost}.${domain}"
VOL_PREFIX="${DOCK_VOL}/orga_${ORGA}-"
;;
*)
usage
;;
esac
CONF_DIR="${VOL_PREFIX}wordpress/_data"
checkDockerRunning "${DockerServName}" "${cloudName}" || exit
# XXX trouver un test du genre if ! grep -q "'installed' => true," "${PHP_CONF}" 2> /dev/null; then
printKazMsg "\n *** Premier lancement de WP"
waitUrl "${WP_URL}"
${SIMU} curl -X POST \
-d "user_name=${wp_WORDPRESS_ADMIN_USER}" \
-d "admin_password=${wp_WORDPRESS_ADMIN_PASSWORD}" \
-d "admin_password2=${wp_WORDPRESS_ADMIN_PASSWORD}" \
-d "pw_weak=true" \
-d "admin_email=admin@kaz.bzh" \
-d "blog_public=0" \
-d "language=fr_FR" \
"${WP_URL}/wp-admin/install.php?step=2"
echo

118
bin/initWiki.sh

@ -0,0 +1,118 @@
#!/bin/bash
KAZ_ROOT=$(cd $(dirname $0)/..; pwd)
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
setKazVars
cd $(dirname $0)
. "${DOCKERS_ENV}"
available_orga=$("${KAZ_BIN_DIR}/kazList.sh" "service" "wiki" 2>/dev/null)
usage () {
echo "Usage: $0 orga${NL}" \
" -h : this help${NL}" \
" -n : simulation${NL}" \
" [orga] : in${NL}" \
" ${CYAN}${available_orga}${NC}${NL}"
exit 1
}
SIMU=
for ARG in $*; do
case "$1" in
-h*) usage ;;
-n) SIMU=echo; shift ;;
*) break;;
esac
done
. ${KAZ_KEY_DIR}/SetAllPass.sh
#wiki_ROOT="admin"
#wiki_PASSWORD="bojhypmihem7ortU"
DNLD_DIR="${KAZ_DNLD_DIR}/dokuwiki"
case "$#" in
0)
# shared
ORGA="Kaz"
wikiName="<common wiki>"
WIKI_TITLE=Kaz
WIKI_EMAIL="wiki@${domain}"
DockerServName="${dokuwikiServName}"
VOL_PREFIX="${DOCK_VOL}/dokuwiki_doku"
WIKI_URL="${httpProto}://${dokuwikiHost}.${domain}"
;;
1)
# orga
[[ " ${available_orga} " =~ "$1" ]] || usage
ORGA=${1%-orga}
wikiName="${ORGA}"
WIKI_TITLE=${wikiName}
WIKI_EMAIL="wiki@${domain}"
DockerServName="${ORGA}-${dokuwikiServName}"
VOL_PREFIX="${DOCK_VOL}/orga_${ORGA}-"
WIKI_URL="${httpProto}://${ORGA}-${dokuwikiHost}.${domain}"
;;
*)
usage
;;
esac
TPL_DIR="${VOL_PREFIX}wikiLibtpl/_data"
PLG_DIR="${VOL_PREFIX}wikiPlugins/_data"
CONF_DIR="${VOL_PREFIX}wikiConf/_data"
checkDockerRunning "${DockerServName}" "${wikiName}}" || exit
cd "${KAZ_COMP_DIR}/dokuwiki/wiki-conf"
if [ ! -f "${CONF_DIR}/local.php" ] ; then
printKazMsg "\n *** Premier lancement de Dokuwiki de ${wikiName}"
waitUrl "${WIKI_URL}"
# XXX test local
${SIMU} curl -X POST \
-A "Mozilla/5.0 (X11; Linux x86_64)" \
-d "l=fr" \
-d "d[title]=${WIKI_TITLE}" \
-d "d[acl]=true" \
-d "d[superuser]=${wiki_ROOT}" \
-d "d[fullname]=Admin"\
-d "d[email]=${WIKI_EMAIL}" \
-d "d[password]=${wiki_PASSWORD}" \
-d "d[confirm]=${wiki_PASSWORD}" \
-d "d[policy]=1" \
-d "d[allowreg]=false" \
-d "d[license]=0" \
-d "d[pop]=false" \
-d "submit=Enregistrer" \
"${WIKI_URL}/install.php"
# XXX initialiser admin:<pass>:admin:<mel>:admin,user
#${SIMU} rsync -auHAX local.php users.auth.php acl.auth.php "${CONF_DIR}/"
${SIMU} sed -i "${CONF_DIR}/local.php" \
-e "s|\(.*conf\['title'\].*=.*'\).*';|\1${ORGA}';|g" \
-e "s|\(.*conf\['title'\].*=.*'\).*';|\1${ORGA}';|g" \
-e "/conf\['template'\]/d" \
-e '$a\'"\$conf['template'] = 'docnavwiki';"''
${SIMU} sed -i -e "s|\(.*conf\['lang'\].*=.*'\)en';|\1fr';|g" "${CONF_DIR}/dokuwiki.php"
${SIMU} chown -R www-data: "${CONF_DIR}/"
fi
${SIMU} unzipInDir "${DNLD_DIR}/docnavwiki.zip" "${TPL_DIR}/"
${SIMU} cp logo.png favicon.ico "${TPL_DIR}/docnavwiki/images/"
${SIMU} chown -R www-data: "${TPL_DIR}/"
# ckgedit : bof
for plugin in captcha smtp todo wrap wrapadd; do
${SIMU} unzipInDir "${DNLD_DIR}/${plugin}.zip" "${PLG_DIR}"
done
${SIMU} chown -R www-data: "${PLG_DIR}/"
Loading…
Cancel
Save