Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 35770 Details for
Bug 41508
Zope-2.7.0 is the latest STABLE release
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
zope-config-0.4-r1
zope-config (text/plain), 12.16 KB, created by
Radoslaw Stachowiak (RETIRED)
on 2004-07-19 14:20:29 UTC
(
hide
)
Description:
zope-config-0.4-r1
Filename:
MIME Type:
Creator:
Radoslaw Stachowiak (RETIRED)
Created:
2004-07-19 14:20:29 UTC
Size:
12.16 KB
patch
obsolete
>#!/bin/bash ># vim: set noexpandtab ts=4: ># Gentoo Zope Instance configure tool. ># ># Originally written by Jason Shoemaker <kutsuya@gentoo.org> ># Portions by Jodok Batlogg <batlogg@gentoo.org> (Logging and some cleanups) ># Portions by Robin Johnson <robbat2@gentoo.org> (Documentation and further cleanup) ># Portions by Carter Smithhart <derheld42@derheld.net> (2.7.0 stuff) ># ># Copyright 1999-2004 Gentoo Foundation ># Distributed under the terms of the GNU General Public License v2 ># $Header: /var/cvsroot/gentoo-x86/app-admin/zope-config/files/0.4/zope-config,v 1.2 2004/07/14 21:22:44 agriffis Exp $ ># ># ># Notes: ># $ZI_DIR/.default holds name of default zope instance ># $NEWZOPE is set to 1 if the zope server is 2.7.0 or newer ># >VERSION="0.4" > >CONFIGFILE=/etc/zope-config.conf >if [ -e ${CONFIGFILE} ]; then > source ${CONFIGFILE} >else > echo "Unable to find config file: ${CONFIGFILE}" 1>&2 > exit 1 >fi > ># Return codes used in this program: >E_SUCCESS=0 >E_FAILURE=1 > >E_ZILIST=22 >E_PARAM=26 >E_ZSLIST=28 >E_ZIDEFAULT=30 > >#Parameters: ># $1 = instance directory ># $2 = group >zinst_security_setup() >{ > if [ ${ZOPE27} ] ; then > chown -R root:${2} ${1} > chmod -R o-rwx ${1} > chmod g+ws ${1}/{var,log} > chmod g+rX -R ${1} > else > chown -R ${ZUID}:${2} ${1} > chmod -R g+u ${1} > chmod -R o-rwx ${1} > chown root ${1}/var/ # needed if $ZOPE_OPTS='-u root' > chmod +t ${1}/var/ > fi >} > ># params: $ZSERV_DIR ># returns 1 if $ZSERV_DIR is a 2.7 or newer Zope. Also sets NEWZOPE to 1. >zserv_is_2.7_or_newer() >{ > TEXT=$(echo $1 | grep ${ZS_DIR2}) > if [ "$TEXT" = "" ] ; then > NEWZOPE=0 > return 0; > fi > NEWZOPE=1 > return 1; >} > >#Params: ># $1 = zserv dir ># $2 = zinst dir >zinst_fs_setup() >{ > local RESULT=${E_FAILURE} > local USER= > local PASS= > local PASS2= > > if [ "${#}" -lt 2 ] ; then > # need a param > RESULT=${E_PARAM} > elif [ ${ZOPE27} ] ; then > if [ "x$3" == "xinituser" ] ; then > ${BIN}/mkzopeinstance.py --user admin:admin --dir $2 > else > ${BIN}/mkzopeinstance.py --dir $2 > fi > RESULT=$? > else > if [ $NEWZOPE = 1 ] ; then > while : ; do > USER=$(dialog --stdout \ > --backtitle "Please choose a username and password for the initial user." \ > --inputbox "Username:" 0 0 "admin") > RESULT=$? > if [ "$USER" != "" ] ; then > break > fi > done > while : ; do > PASS=$(dialog --stdout \ > --backtitle "Please choose a username and password for the initial user." \ > --passwordbox "Password:" 0 0 "") > RESULT=$? > if [ "$PASS" = "" ] ; then > continue > fi > PASS2=$(dialog --stdout \ > --backtitle "Please choose a username and password for the initial user." \ > --passwordbox "Reenter Password:" 0 0 "") > RESULT=$? > if [ "$PASS2" = "" ] ; then > continue > fi > if [ $PASS = $PASS2 ] ; then > break > else > dialog --msgbox "Passwords must be equal!" 0 0 > fi > done > su zope -c "$1/bin/mkzopeinstance.py --dir $2 --user $USER:$PASS" > RESULT=${E_SUCCESS} > else > # prior to 2.7 > mkdir -p $2 || exit 1 > if [ $(zinst_default_get >/dev/null)$? -ne 0 ] ; then > echo $(basename ${ZINST_DIR}) >${ZI_DIR}/.default > chown zope:root ${ZI_DIR}/.default > fi > > if [ -f $2/var/Data.fs ]; then > mv $2/var/Data.fs $2/var/Data.fs.org > fi > > cp -R $1/.templates/Extensions $2 > cp -R $1/.templates/import $2 > cp -R $1/.templates/var $2 > mkdir $2/Products > > if [ -f $2/var/Data.fs.org ]; then > mv $2/var/Data.fs $2/var/Data.fs.dist > mv $2/var/Data.fs.org $2/var/Data.fs > fi > > RESULT=$? > fi > fi > > return ${RESULT} >} > >#Params: ># $1 = zserv dir ># $2 = zinst dir ># $3 = zinst name >zinst_rc_setup() >{ > local RESULT=${E_FAILURE} > > if [ "${#}" -lt 3 ] ; then > # need a param > RESULT=${E_PARAM} > elif [ ${ZOPE27} ] ; then > install $1/skel/zope.initd ${INITD}/${3} > echo "INSTANCE_HOME=${2}" >${CONFD}/$3 > echo "EVENT_LOG_FILE=${EVENTLOGDIR}/${3}" >>${CONFD}/$3 > sed -i \ > -e "/^# *effective-user/ a\\effective-user ${ZUID}\\ " \ > ${2}/etc/zope.conf > RESULT=$? > else > if [ $NEWZOPE = 1 ] ; then > install $1/.templates/zope.initd ${INITD}/${3} > sed -i \ > -e "s|ZINST_DIR=|ZINST_DIR=${2}|" \ > -e "s|EVENT_LOG_FILE=|EVENT_LOG_FILE=${EVENTLOGDIR}\/${3}|" \ > ${INITD}/${3} > RESULT=${E_SUCCESS} > else > install $1/.templates/zope.confd ${CONFD}/${3} > install $1/.templates/zope.initd ${INITD}/${3} > sed -i \ > -e "/INSTANCE_HOME=/ c\\INSTANCE_HOME=${2}\\ " \ > -e "/CLIENT_HOME=/ c\\CLIENT_HOME=${2}/var\\ " \ > -e "/EVENT_LOG_FILE=/ c\\EVENT_LOG_FILE=${EVENTLOGDIR}\/${3}\\ " \ > ${CONFD}/${3} > RESULT=$? > fi > # make sure the directory exists > mkdir -p ${EVENTLOGDIR} >/dev/null 2>&1 > fi > return ${RESULT} >} > ># Sets the variable: ZSERV_DIR and returns 0 ># or returns a non-zero error code >zserv_dir_get() >{ > local RESULT=${E_FAILURE} > local LIST=$(ls -d ${ZS_DIR}* ; ls -d ${ZS_DIR2}*) > local LIST_CNT=$(echo ${LIST} | wc -w) > local DLIST= > > # Assume that LIST_TMP contains valid zserver dirs. > if [ ${LIST_CNT} -eq 1 ] ; then > ZSERV_DIR=${LIST} > RESULT=${E_SUCCESS} > elif [ ${LIST_CNT} -ne 0 ] ; then > for N in ${LIST} ; do > DLIST="${DLIST} $N -" > done > ZSERV_DIR=$(dialog --stdout \ > --title "Zope Server List" \ > --menu "Select desired zserver: " 0 40 ${LIST_CNT} ${DLIST}) > RESULT=$? > else > RESULT=${E_ZSLIST} # There are no zservers > fi > > # set NEWZOPE to 1 if we are dealing with a "newer" zope version > zserv_is_2.7_or_newer ${ZERV_DIR} > > return ${RESULT} >} > ># Sets the variable: ZINST_DIR and returns 0 ># or returns a non-zero error code >zinst_dir_set() >{ > local RESULT= > > if [ ! -d ${ZI_DIR} ] ; then > mkdir -p ${ZI_DIR} > fi > > while : ; do > ZINST_DIR=$(dialog --stdout \ > --backtitle "Need a uniqe name for zinstance directory.(Also the name of the rcscript.)" \ > --inputbox "Enter a new zinstance name:" 0 0 ${DEFAULT_ZINSTANCENAME} ) > RESULT=$? > if [ ${RESULT} -ne 0 ] ; then > break > elif [ -z ${ZINST_DIR} ] ; then > dialog --msgbox "Error: need a name." 0 0 > continue > elif echo ${ZINST_DIR} |grep "/" ; then > dialog --msgbox "Error: ${ZINST_DIR} is a path, not a name." 0 0 > continue > elif [[ -d "${ZI_DIR}${ZINST_DIR}" && \ > -f "${INITD}/${ZINST_DIR}" ]] ; then > dialog --msgbox "Error: ${ZINST_DIR} zinstance already exists. Delete ${INITD}/${ZINST_DIR} to replace instance." 0 0 > continue > fi > ZINST_DIR=${ZI_DIR}${ZINST_DIR} > break > done > return ${RESULT} >} > ># sets the variable $ZINST_DIR and returns 0 ># or returns non-null error code >zinst_dir_get() >{ > local RESULT=1 > local LIST=$(ls ${ZI_DIR}) > local LIST_CNT=$(echo ${LIST} | wc -w) > local DLIST= > > # Assume that LIST_TMP contains valid zinstance dirs. > if [ ${LIST_CNT} -eq 1 ] ; then > ZINST_DIR=${LIST} > RESULT=${E_SUCCESS} > elif [ ${LIST_CNT} -ne 0 ] ; then > for N in ${LIST} ; do > DLIST="${DLIST} $N -" > done > ZINST_DIR=$(dialog --stdout \ > --title "Zope Instance List" \ > --menu "Select desired zinstance:" 0 0 ${LIST_CNT} ${DLIST}) > RESULT=$? > else > RESULT=${E_ZILIST} # There are no zinstances > fi > ZINST_DIR="${ZI_DIR}${ZINST_DIR}" > return ${RESULT} >} > ># makes ZSERV_DIR the default zope version. if ZSERV_DIR >zinst_default_set() >{ > local RESULT= > > if [ -z ${ZINST_DIR} ] ; then > zinst_dir_get || { echo 'Canceled: zinst_dir_get' ; exit 1 ; } > fi > RESULT=$? > if [ ${RESULT} -eq 0 ] ; then > echo $(basename ${ZINST_DIR}) >${ZI_DIR}/.default > chown zope ${ZI_DIR}/.default > fi > > return ${RESULT} >} > ># Echos the default directory that this instance was created in >zinst_default_get() >{ > local RESULT=${E_ZIDEFAULT} > > if [ -s ${ZI_DIR}/.default ] ; then > cat ${ZI_DIR}/.default > RESULT=$? # use to be 0 > fi > return ${RESULT} >} > ># Gets a name for the group that owns the new zinstance and also creates the ># group if nessicary >zinst_zgid_set() >{ > local RESULT= > while : ; do > ZGID_NAME=$(dialog --stdout \ > --backtitle "Need to create/assign a zinstance group name." \ > --inputbox "Enter a group name:" \ > 0 0 $(basename ${ZIRC_NAME})) > RESULT=$? > if [ ${RESULT} -ne 0 ] ; then > break > elif [ -z ${ZGID_NAME} ] ; then > dialog --msgbox "Error: empty string." 0 0 > continue > elif groupmod ${ZGID_NAME} >/dev/null 2>&1 ; then > dialog --yesno "${ZGID_NAME} already exists, use it?" 0 0 > RESULT=$? > [ ${RESULT} -ne 0 ] && continue > fi > break > done > return ${RESULT} >} > ># Sets the inituser password for a given zinstance >zinst_zpasswd_set() >{ > if [ -z ${ZSERV_DIR} ] ; then > zserv_dir_get || { exit $? ; } > fi > if [ -z ${ZINST_DIR} ] ; then > zinst_dir_get || exit $? > fi > > zserv_is_2.7_or_newer ${ZSERV_DIR} > if [ $NEWZOPE = 1 ] ; then > echo ">>> Create Zope inituser for \"$(basename ${ZINST_DIR})\"..." > /usr/bin/python ${BIN}/zpasswd.py ${ZINST_DIR}/inituser > # If zpasswd is aborted it creates a blank inituser > chown ${ZUID} ${ZINST_DIR}/inituser > else > echo ">>> Create Zope inituser for \"$(basename ${ZINST_DIR})\"..." > /usr/bin/python ${ZSERV_DIR}/zpasswd.py ${ZINST_DIR}/inituser > # If zpasswd is aborted it creates a blank inituser > chown ${ZUID} ${ZINST_DIR}/inituser > fi >} > ># help! > >usage() >{ > echo "$(basename $0) version ${VERSION}" > echo "A Gentoo Zope Instance configure tool." > echo > echo "Interactive usage:" > echo -e "\t$(basename $0)" > echo "Partial interactive usage:" > echo -e "\t$(basename $0) --[zserv=[dir] &| zinst=[dir] &| zgid=[name]]" > echo "Non-interactive usage:" > echo -e "\t$(basename $0) --[zidef-get | zidef-set | zpasswd | version | help]" > echo -e "\t$(basename $0) --[zserv=[dir] & zinst=[di] & zgid=[name]]" > exit ${E_SUCCESS} >} > >zserv_version_detect() >{ > if [ -d "${ZSERV_DIR}/bin" ] ; then > ZOPE27=1 > BIN=${ZSERV_DIR}/bin > else > ZOPE27=0 > BIN=${ZSERV_DIR} > fi >} > >##### Process the commandline > >while [ "$#" -gt 0 ] ; do > case "$1" in > -*=*) OPTARG=$(echo "$1" | sed 's/[-_a-zA-Z0-9:]*=//') ;; > *) OPTARG= ;; > esac > > case "$1" in > --zserv=*) ZSERV_DIR=${OPTARG} ; zserv_version_detect ;; > --zinst=*) ZINST_DIR=${OPTARG} ;; > --zgid=*) ZGID_NAME=${OPTARG} ;; > --zinituser) ZINIT_USER=inituser ;; > --zidef-set) zinst_default_set ; exit $? ;; > --zidef-get) zinst_default_get ; exit $? ;; > --zpasswd) zinst_zpasswd_set ; exit $? ;; > --version) echo ${VERSION} ; exit 0 ;; > -*) usage ; exit 0 ;; > *) usage ; exit 0 ;; > esac > shift >done > ># if ZSERV_DIR isn't set by command line, call zserv_dir_get to set it >if [ -z ${ZSERV_DIR} ] ; then > zserv_dir_get || { echo 'Canceled: zserv_dir_get' ; exit 1 ; } > zserv_version_detect >fi > ># if ZINST_DIR passed by command line, call zinst_dir_set to set it >if [ -z ${ZINST_DIR} ] ; then > zinst_dir_set || { echo 'Canceled: zinst_dir_set' ; exit 1 ; } >fi > ># if ZIRC_NAME isn't set then use the base of the ZINST_DIR for ZIRC_NAME >[ -z ${ZIRC_NAME} ] && ZIRC_NAME=$(basename ${ZINST_DIR}) > >if [ -z ${ZGID_NAME} ] ; then > zinst_zgid_set || { echo 'Canceled: zinst_zgid_set' ; exit 1 ; } >fi >zserv_is_2.7_or_newer ${ZSERV_DIR} > >zinst_fs_setup ${ZSERV_DIR} ${ZINST_DIR} ${ZINIT_USER} >zinst_rc_setup ${ZSERV_DIR} ${ZINST_DIR} ${ZIRC_NAME} > >! groupmod ${ZGID_NAME} >/dev/null 2>&1 && groupadd ${ZGID_NAME} ># add existing user zope to the new group >gpasswd -a zope ${ZGID_NAME} > >zinst_security_setup ${ZINST_DIR} ${ZGID_NAME} > ># TODO: see about adding interactive configuration of ZOPE_OPTS >if [ ${ZOPE27} ] ; then > echo "Note: Review settings in ${ZINST_DIR}/etc/zope.conf." > echo "Then you can start your new instance with:" > echo " /etc/init.d/${ZIRC_NAME} start" >else > echo "Note: Don\'t forget to edit ZOPE_OPTS in ${CONFD}${ZIRC_NAME}" > echo " (you might want to add -P 8{1,2,3,..}00 to set the zope ports offset)" >fi
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 41508
:
28323
|
30905
|
30906
|
30907
|
30909
|
30910
|
33521
|
33950
|
33951
|
33952
|
34055
|
34059
|
34078
|
35340
|
35399
| 35770 |
35771
|
35865