summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Geiger2011-06-25 17:00:18 +0200
committerBjörn Geiger2011-06-25 17:00:18 +0200
commit41552d6ca2662fdcf8dafcf60543fb1d4d9a02be (patch)
treeeef8ce9de0a3dfa95c88b8f05dbd5d06e9750764
parentLayout hinzugefügt (diff)
downloadpoolctrl-41552d6ca2662fdcf8dafcf60543fb1d4d9a02be.tar.gz
poolctrl-41552d6ca2662fdcf8dafcf60543fb1d4d9a02be.tar.xz
poolctrl-41552d6ca2662fdcf8dafcf60543fb1d4d9a02be.zip
Setup hinzugefügt
-rwxr-xr-xinstall.sh87
-rwxr-xr-xscripts/createDefaultMapper/mapper.sh37
-rw-r--r--scripts/createDefaultMapper/mappertemplate83
-rwxr-xr-xscripts/local-install.sh30
4 files changed, 237 insertions, 0 deletions
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
+<VirtualHost *:80>
+ ServerName $vhost_name
+ ServerAdmin admin@$vhost_name
+ DocumentRoot $targetDir/public
+ <Directory $targetDir/public >
+ Options FollowSymLinks
+ AllowOverride All
+ </Directory>
+</VirtualHost>
+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 @@
+<?php
+
+class Application_Model_MAPPER
+{
+
+ protected $_dbTable;
+
+ public function setDbTable($dbTable)
+ {
+ if (is_string($dbTable)) {
+ $dbTable = new $dbTable();
+ }
+
+ if (!$dbTable instanceof Zend_Db_Table_Abstract) {
+ throw new Exception('Invalid table data gateway provided');
+ }
+
+ $this->_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 " <VirtualHost 127.0.0.2:80>" >> /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 " <Directory /tmp/poolctrl/public >" >> /etc/apache2/sites-available/poolctrl
+echo " Options FollowSymLinks" >> /etc/apache2/sites-available/poolctrl
+echo " AllowOverride All" >> /etc/apache2/sites-available/poolctrl
+echo " </Directory>" >> /etc/apache2/sites-available/poolctrl
+echo " </VirtualHost>" >> /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