From 41552d6ca2662fdcf8dafcf60543fb1d4d9a02be Mon Sep 17 00:00:00 2001 From: Björn Geiger Date: Sat, 25 Jun 2011 17:00:18 +0200 Subject: Setup hinzugefügt --- install.sh | 87 ++++++++++++++++++++++++++++++ scripts/createDefaultMapper/mapper.sh | 37 +++++++++++++ scripts/createDefaultMapper/mappertemplate | 83 ++++++++++++++++++++++++++++ scripts/local-install.sh | 30 +++++++++++ 4 files changed, 237 insertions(+) create mode 100755 install.sh create mode 100755 scripts/createDefaultMapper/mapper.sh create mode 100644 scripts/createDefaultMapper/mappertemplate create mode 100755 scripts/local-install.sh diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..07ad438 --- /dev/null +++ b/install.sh @@ -0,0 +1,87 @@ +#!/bin/bash +# +# Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg +# This program is free software distributed under the GPL version 2. +# See http://gpl.openslx.org/ +# +# If you have any feedback please consult http://feedback.openslx.org/ and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ + +# Absolute path to this script. /home/user/bin/foo.sh +echo "Copying to /var/www/" + +sourceDir=$(readlink -f $(dirname $(readlink -f $0))) +echo -n "enter vhost name: " +read vhost_name +targetDir="/var/www/$vhost_name" +mkdir -p $targetDir +cp -R $sourceDir/* $targetDir + +echo "Creating poolctrl host..."# +mkdir -p $targetDir/library +ln -sf /usr/share/php/libzend-framework-php/Zend $targetDir/library/ +cat > /etc/apache2/sites-available/$vhost_name << EOF + + ServerName $vhost_name + ServerAdmin admin@$vhost_name + DocumentRoot $targetDir/public + + Options FollowSymLinks + AllowOverride All + + +EOF + +echo "Enabling poolctrl host..." +a2ensite $vhost_name +echo "Restarting apache..." +apachectl restart + +echo "Creating config of poolctrl..." +cp $targetDir/application/configs/application.ini.dist $targetDir/application/configs/application.ini + +echo -n "Please enter db admin user [root]: " +read db_admin +[ "x" = "x$db_admin" ] && db_admin="root" + +echo -n "Please enter the password for db admin user $db_admin: " +stty -echo +read db_adminpass +stty echo + +echo -n "Please enter username for poolctrl db: " +read db_user +sed -e "13s/\$/$db_user/" -i $targetDir/application/configs/application.ini + +#echo -n "Please enter password for poolctrl db user $databaseuser: " +#read databasepassword +db_pass=$(md5sum /var/log/syslog| awk '{print $1}') +sed -e "14s/\$/$db_pass/" -i $targetDir/application/configs/application.ini + +echo -n "Enter database name: " +read db_name +sed -e "15s/\$/$db_name/" -i $targetDir/application/configs/application.ini + +echo "Create database and tables" +cat $targetDir/setup/poolctrl.sql | sed -e "s,##poolctrl##,$db_name," > /tmp/poolctrl.sql +mysql -u $db_admin -p$db_adminpass < /tmp/poolctrl.sql +rm /tmp/poolctrl.sql + +echo "Create db user" +echo "GRANT ALL PRIVILEGES ON ${db_name}.* TO '${db_user}'@'localhost'" > /tmp/poolctrl-admin.sql +echo " IDENTIFIED BY '${db_pass}' WITH GRANT OPTION;" >> /tmp/poolctrl-admin.sql +echo "FLUSH PRIVILEGES;" >> /tmp/poolctrl-admin.sql +mysql -u $db_admin -p$db_adminpass mysql < /tmp/poolctrl-admin.sql +rm /tmp/poolctrl-admin.sql + +echo "Import demo data" +cat $targetDir/setup/poolctrl_data.sql | sed -e "s,##poolctrl##,$db_name," > /tmp/poolctrl-data.sql +mysql -u $db_user -p$db_pass < /tmp/poolctrl-data.sql +rm /tmp/poolctrl-data.sql +#mysql -u $databaseuser -p$databasepassword < $targetDir/setup/poolctrl.sql +#mysql -u $databaseuser -p$databasepassword < $targetDir/setup/poolctrl_data.sql + +echo "woho - poolctrl is ready to use" +echo "You can reach your installed poolctrl server under http://$vhost_name/" diff --git a/scripts/createDefaultMapper/mapper.sh b/scripts/createDefaultMapper/mapper.sh new file mode 100755 index 0000000..43b1dc8 --- /dev/null +++ b/scripts/createDefaultMapper/mapper.sh @@ -0,0 +1,37 @@ +#!/bin/sh +id=$(grep -c "getID" $1) + +modelname=$(basename $1 .php) +modelmapper=${modelname}Mapper +modelmapperfile=$(dirname $1)/${modelmapper}.php +modelvar=$(echo "$modelname" | tr -s '[A-Z]' '[a-z]') +setID="NULL" +getID="NULL" +if [ $id -eq 0 ]; then + echo "$1 enthält keinen Primärschlüssel" +else +getID="get$(echo "$modelvar" | sed -e "s/\([^\.]\+\)\./\u\1\./g" -e "s/^\(.\)/\u\1/")ID" +setID="set$(echo "$modelvar" | sed -e "s/\([^\.]\+\)\./\u\1\./g" -e "s/^\(.\)/\u\1/")ID" +fi +cp mappertemplate ${modelmapperfile} + +savedata=$(grep "protected" $1 | awk -v SQ="\'" -F '_|;' '{ + printf "," SQ $2 SQ "=> $MVAR->get"; + split($2,a,""); a[1]=toupper(a[1]); + for(i=1; i<=length($2); i++){printf a[i]}; + printf "() "}') + +find=$(grep "protected" $1 | awk -F '_|;' '{ + printf "->set"; split($2,a,""); + a[1]=toupper(a[1]); + for(i=1; i<=length($2); i++){printf a[i]}; + printf "($row->%s)", $2}') + +sed -i "s/SAVEDATA/${savedata}/g" ${modelmapperfile} +sed -i "s/FIND/${find}/g" ${modelmapperfile} +sed -i "s/${getID}/getID/g" ${modelmapperfile} +sed -i "s/${setID}/setID/g" ${modelmapperfile} +sed -i "s/array(,/array(/g" ${modelmapperfile} +sed -i "s/MODEL/${modelname}/g" ${modelmapperfile} +sed -i "s/MVAR/${modelvar}/g" ${modelmapperfile} +sed -i "s/MAPPER/${modelmapper}/g" ${modelmapperfile} diff --git a/scripts/createDefaultMapper/mappertemplate b/scripts/createDefaultMapper/mappertemplate new file mode 100644 index 0000000..c7c857e --- /dev/null +++ b/scripts/createDefaultMapper/mappertemplate @@ -0,0 +1,83 @@ +_dbTable = $dbTable; + + return $this; + } + + public function getDbTable() + { + if (null === $this->_dbTable) { + $this->setDbTable('Application_Model_DbTable_MODEL'); + } + + return $this->_dbTable; + } + + public function save(Application_Model_MODEL $MVAR) + { + + $data = array(SAVEDATA); + + if (null === ($id = $MVAR->getID()) ) { + unset($data['MVARID']); + $this->getDbTable()->insert($data); + } else { + $this->getDbTable()->update($data, array('MVARID = ?' => $id)); + } + } + + public function delete(Application_Model_MODEL $MVAR) + { + if (null === ($id = $MVAR->getID()) ) { + return; + } else { + $this->getDbTable()->delete(array('MVARID = ?' => $id)); + } + } + + public function find($id, Application_Model_MODEL $MVAR) + { + $result = $this->getDbTable()->find($id); + if (0 == count($result)) { + return; + } + + $row = $result->current(); + + $MVARFIND; + } + + public function fetchAll() + { + $resultSet = $this->getDbTable()->fetchAll(); + $entries = array(); + foreach ($resultSet as $row) { + $entry = new Application_Model_MODEL(); + + $entryFIND; + + $entries[] = $entry; + } + return $entries; + } + + + +} + diff --git a/scripts/local-install.sh b/scripts/local-install.sh new file mode 100755 index 0000000..0f8ff7e --- /dev/null +++ b/scripts/local-install.sh @@ -0,0 +1,30 @@ +#!/bin/bash +apt-get update +apt-get install apache2 -y +apt-get install php5 libapache2-mod-php5 -y +# passwort lsfks-openslx +apt-get install mysql-server -y +apt-get install phpmyadmin -y +echo "Include /etc/phpmyadmin/apache.conf" >> /etc/apache2/apache2.conf +zcat /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz | mysql -uroot -p +apt-get install zend-framework-bin -y +a2enmod rewrite +cd /tmp/ +su sf34 -c "git clone git@openslx.org:lsfks/projekte/poolctrl.git" +mkdir /tmp/poolctrl/library/ +ln -s /usr/share/php/libzend-framework-php/Zend/ /tmp/poolctrl/library/Zend +chown sf34:uni library/ +touch /etc/apache2/sites-available/poolctrl +echo " " >> /etc/apache2/sites-available/poolctrl +echo " ServerName poolctrl.local" >> /etc/apache2/sites-available/poolctrl +echo " ServerAlias poolctrl.local" >> /etc/apache2/sites-available/poolctrl +echo " ServerAdmin admin@poolctrl.local" >> /etc/apache2/sites-available/poolctrl +echo " DocumentRoot /tmp/poolctrl/public" >> /etc/apache2/sites-available/poolctrl +echo " " >> /etc/apache2/sites-available/poolctrl +echo " Options FollowSymLinks" >> /etc/apache2/sites-available/poolctrl +echo " AllowOverride All" >> /etc/apache2/sites-available/poolctrl +echo " " >> /etc/apache2/sites-available/poolctrl +echo " " >> /etc/apache2/sites-available/poolctrl +ln -s /etc/apache2/sites-available/poolctrl /etc/apache2/sites-enabled/poolctrl +echo "127.0.0.2 poolctrl.local" >> /etc/hosts +/etc/init.d/apache2 restart -- cgit v1.2.3-55-g7522