Fanch
1 year ago
12 changed files with 806 additions and 0 deletions
@ -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 |
@ -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 |
@ -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 |
@ -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 |
@ -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 |
|||
|
|||
|
|||
|
@ -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 |
@ -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 |
@ -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 |
|||
|
@ -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} |
@ -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 |
@ -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 |
@ -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…
Reference in new issue