#!/bin/sh # postinst script for lams2 # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-remove' # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package update235to240 () { # Add new tools # BigBlueButton tool cd /usr/share/lams2/bbb-deploy sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true # IMS Content Cartridge cd /usr/share/lams2/imscc-deploy sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true # Wookie cd /usr/share/lams2/wookie-deploy sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true # Copy ROOT.war to deploy cp -pr /usr/share/lams2/ROOT.war /usr/share/jboss-5.1/server/default/deploy # Clear caches clearcache; setfspermissions; } update234to235 () { # Add eadventure tool, new in 2.3.5 cd /usr/share/lams2/lams_tool_eadventure sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true } update232to233 () { # Remove old llid language files cd /usr/share/jboss-4.0.2/server/default/deploy/lams.ear/lams-dictionary.jar/org/lamsfoundation/lams/library/ for dir in `ls` do if [ $dir != "chatscribe" ] ; then if [ $dir != "forumscribe" ] ; then if [ $dir != "shareresourcesforum" ] ; then rm -rf $dir fi fi fi done } update230to231 () { # Update 2.3.0 database to 2.3.1 if [ "$db_root_pass" != "" ] ; then mysql $db_name < /usr/share/lams2/2.3.0to2.3.1.sql -u root -p$db_root_pass || true else mysql $db_name < /usr/share/lams2/2.3.0to2.3.1.sql -u root || true fi } configure230 () { # Configure 2.3 tools; need to run after above tools have been deployed if [ "$db_root_pass" != "" ] ; then mysql $db_name < /usr/share/lams2/configure2.3.0.sql -u root -p$db_root_pass || true else mysql $db_name < /usr/share/lams2/configure2.3.0.sql -u root || true fi } update220to230 () { # Update 2.2.0 database to 2.3 if [ "$db_root_pass" != "" ] ; then mysql $db_name < /usr/share/lams2/2.2.0to2.3.0.sql -u root -p$db_root_pass || true else mysql $db_name < /usr/share/lams2/2.2.0to2.3.0.sql -u root || true fi # Add assessment tool, new in 2.3 cd /usr/share/lams2/lams_tool_assessment/ sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true # Add images tool, new in 2.3 cd /usr/share/lams2/lams_tool_images/ sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true # Add mindmap tool, new in 2.3 cd /usr/share/lams2/lams_tool_mindmap/ sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true # Add pixlr tool, new in 2.3 cd /usr/share/lams2/lams_tool_pixlr/ sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true # Add videorecorder tool, new in 2.3 cd /usr/share/lams2/lams_tool_videorecorder/ sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true } clearcache () { rm -rf /var/cache/jboss/tmp/* rm -rf /var/cache/jboss/work/* } setfspermissions () { # set the proper file permissions for jboss and repos. chown -R lams:lams /usr/share/jboss-5.1 chown -R lams:lams /var/lib/lams chown -R lams:lams /var/log/jboss chown -R lams:lams /var/cache/jboss/ } configure220 () { # Configure 2.2 tools; need to run after above tools have been deployed if [ "$db_root_pass" != "" ] ; then mysql $db_name < /usr/share/lams2/configure2.2.0.sql -u root -p$db_root_pass || true else mysql $db_name < /usr/share/lams2/configure2.2.0.sql -u root || true fi } update211to220 () { # Update 2.1.1 database to 2.2 if [ "$db_root_pass" != "" ] ; then mysql $db_name < /usr/share/lams2/2.1.1to2.2.0.sql -u root -p$db_root_pass || true else mysql $db_name < /usr/share/lams2/2.1.1to2.2.0.sql -u root || true fi # Add data collection tool, new in 2.2 cd /usr/share/lams2/lams_tool_daco/ sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true # Add dimdim tool, new in 2.2 (disabled in 2.1.1to2.2.0.sql however) cd /usr/share/lams2/lams_tool_dimdim/ sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true # Add gmap tool, new in 2.2 cd /usr/share/lams2/lams_tool_gmap/ sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true # Add spreadsheet tool, new in 2.2 cd /usr/share/lams2/lams_tool_spreadsheet/ sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true # Add wiki tool, new in 2.2 cd /usr/share/lams2/lams_tool_wiki/ sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true } update21rc1to210 () { # Update 2.1rc1 database to 2.1 if [ "$db_root_pass" != "" ] ; then mysql $db_name < /usr/share/lams2/2.1rc1to2.1.sql -u root -p$db_root_pass || true else mysql $db_name < /usr/share/lams2/2.1rc1to2.1.sql -u root || true fi # Add Tasklist tool, new in 2.1 cd /usr/share/lams2/lams_tool_task/ sed -i -e "s/\(\).*\(\?.*\)\(<\/dbDriverUrl>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2\3/" deploy.xml sed -i -e "s/\(\).*\(<\/dbUsername>\)/\1$db_user\2/" deploy.xml sed -i -e "s/\(\).*\(<\/dbPassword>\)/\1$db_pass\2/" deploy.xml ./deploy.sh || true } update210to211 () { # Update 2.1.0 database to 2.1.1 if [ "$db_root_pass" != "" ] ; then mysql $db_name < /usr/share/lams2/2.1.0to2.1.1.sql -u root -p$db_root_pass || true else mysql $db_name < /usr/share/lams2/2.1.0to2.1.1.sql -u root || true fi } update () { rm -rf /var/cache/jboss/tmp/* rm -rf /var/cache/jboss/work/* #cp -p /usr/share/lams2/tmp/news.html /usr/share/jboss-4.0.2/server/default/deploy/lams.ear/lams-www.war/ rm -Rf /usr/share/lams2/tmp/ } case "$1" in configure) . /usr/share/debconf/confmodule db_get lams2/db_root_pass || true db_root_pass="$RET" #db_get lams2/db_name || true #db_name="$RET" db_name="lams" #db_get lams2/db_user || true #db_user="$RET" db_user="lams" #db_get lams2/db_pass || true #db_pass="$RET" db_pass="lamsdbpasswd" db_get lams2/server_host || true server_host="$RET" db_get lams2/server_port || true server_port="$RET" db_get lams2/sysadmin_user || true sysadmin_user="$RET" db_get lams2/sysadmin_pass_confirm || true sysadmin_pass="$RET" db_stop || true # Configure database access in mysql-ds.xml cd /usr/share/jboss-5.1/server/default/deploy/ sed -i -e "s/\(\).*\(<\/connection-url>\)/\1jdbc:mysql:\/\/localhost:3306\/$db_name\2/" mysql-ds.xml sed -i -e "s/\(\).*\(<\/user-name>\)/\1$db_user\2/" mysql-ds.xml sed -i -e "s/\(\).*\(<\/password>\)/\1$db_pass\2/" mysql-ds.xml # Configure port in server.xml cd /usr/share/jboss-5.1/server/default/deploy/jbossweb.sar/ sed -i -e "s/port=\"8080\"/port=\"$server_port\"/" server.xml case "$2" in 2.3.5*) update; update235to240; ;; 2.3.4*) update; update234to235; ;; 2.3.3*) update; ;; 2.3.2*) update; update232to233; ;; 2.3.1*) update; ;; 2.3.0*) update; update230to231; ;; 2.2.0*) update; update220to230; configure230; update230to231; ;; 2.1.1*) update; update211to220; configure220; update220to230; configure230; update230to231; ;; 2.1.0*) update; update210to211; update211to220; configure220; update220to230; configure230; update230to231; ;; 2.1rc1*) update; update21rc1to210; update210to211; update211to220; configure220; update220to230; configure230; update230to231; ;; *) # Assemble a ServerURL server_url="http://$server_host:$server_port/lams/" if [ "$db_root_pass" != "" ] ; then # Check if db exists if [ ! -d /var/lib/mysql/lams/ ] ; then mysql -e "create database $db_name default charset utf8;" \ -u root -p$db_root_pass || true fi mysql -e "grant all privileges on $db_name.* to $db_user@localhost identified by '$db_pass';" \ -u root -p$db_root_pass || true mysql -e "revoke process,super on *.* from $db_user@localhost;" -u root -p$db_root_pass || true mysql $db_name < /usr/share/lams2/lams.sql -u root -p$db_root_pass || true # Configure ServerURL and admin username/password mysql $db_name -e "update lams_configuration \ set config_value='$server_url' where config_key='ServerURL'" \ -u root -p$db_root_pass || true mysql $db_name -e "update lams_configuration \ set config_value='/usr/share/jboss-5.1/server/default/deploy/lams.ear/' \ where config_key='EARDir'" \ -u root -p$db_root_pass || true mysql $db_name -e "update lams_user \ set login='$sysadmin_user' \ where user_id=1" \ -u root -p$db_root_pass || true mysql $db_name -e "update lams_user \ set password=sha1('$sysadmin_pass')" \ -u root -p$db_root_pass || true mysql $db_name -e "update lams_configuration \ set config_value='/var/lib/lams/repository' \ where config_key='ContentRepositoryPath'" \ -u root -p$db_root_pass || true mysql $db_name -e "update lams_configuration \ set config_value='/var/lib/lams/dump' \ where config_key='DumpDir'" \ -u root -p$db_root_pass || true mysql $db_name -e "update lams_configuration \ set config_value='/var/lib/lams/temp' \ where config_key='TempDir'" \ -u root -p$db_root_pass || true else if [ ! -d /var/lib/mysql/lams/ ] ; then mysql -e "create database $db_name default charset utf8;" -u root || true fi mysql -e "grant all privileges on $db_name.* to $db_user@localhost identified by '$db_pass';" \ -u root || true mysql -e "revoke process,super on *.* from $db_user@localhost;" -u root || true mysql $db_name < /usr/share/lams2/lams.sql -u root || true # Configure ServerURL and admin username/password mysql $db_name -e "update lams_configuration \ set config_value='$server_url' \ where config_key='ServerURL'" \ -u root || true mysql $db_name -e "update lams_configuration \ set config_value='/usr/share/jboss-5.1/server/default/deploy/lams.ear/' \ where config_key='EARDir'" \ -u root || true mysql $db_name -e "update lams_user \ set login='$sysadmin_user' \ where user_id=1" \ -u root || true mysql $db_name -e "update lams_user \ set password=sha1('$sysadmin_pass')" \ -u root || true mysql $db_name -e "update lams_configuration \ set config_value='/var/lib/lams/repository' \ where config_key='ContentRepositoryPath'" \ -u root || true mysql $db_name -e "update lams_configuration \ set config_value='/var/lib/lams/dump' \ where config_key='DumpDir'" \ -u root || true mysql $db_name -e "update lams_configuration \ set config_value='/var/lib/lams/temp' \ where config_key='TempDir'" \ -u root || true fi # Place lams-www.war (uploaded data) in /var/lib cd /usr/share/jboss-5.1/server/default/deploy/lams.ear/ if [ ! -d /var/lib/lams/ ] ; then mkdir -p /var/lib/lams/ fi if [ ! -d /var/lib/lams/lams-www.war ]; then mv lams-www.war /var/lib/lams/ fi # If lams-www.war already exists, copy to /var and remove it before linking it if [ ! -L /usr/share/jboss-5.1/server/default/deploy/lams.ear/lams-www.war ] ; then if [ -d /usr/share/jboss-5.1/server/default/deploy/lams.ear/lams-www.war ] ; then cp -pr lams-www.war /var/lib/lams/ rm -rf lams-www.war fi fi ln -s /var/lib/lams/lams-www.war 2>/dev/null || true # Copy included repository (only for new installs) #cp -rp /usr/share/lams2/repository/ /var/lib/lams/ #configure220; #configure230; # Copy ROOT.war to deploy cp -pr /usr/share/lams2/ROOT.war /usr/share/jboss-5.1/server/default/deploy # Add user and group adduser --system --group --no-create-home lams 2> /dev/null setfspermissions; ;; esac # Remove temp files rm -f /usr/share/lams2/2.1rc1to2.1.sql rm -f /usr/share/lams2/lams.sql rm -rf /usr/share/lams2/lams_tool_task rm -f /usr/share/lams2/2.1.0to2.1.1.sql rm -f /usr/share/lams2/2.1.1to2.2.0.sql rm -f /usr/share/lams2/configure2.2.0.sql rm -rf /usr/share/lams2/lams_tool_daco rm -rf /usr/share/lams2/lams_tool_dimdim rm -rf /usr/share/lams2/lams_tool_gmap rm -rf /usr/share/lams2/lams_tool_spreadsheet rm -rf /usr/share/lams2/lams_tool_wiki rm -rf /usr/share/lams2/lams_tool_eadventure rm -rf /usr/share/lams2/repository rm -f /usr/share/lams2/2.2.0to2.3.0.sql rm -f /usr/share/lams2/configure2.3.0.sql rm -rf /usr/share/lams2/lams_tool_assessment rm -rf /usr/share/lams2/lams_tool_images rm -rf /usr/share/lams2/lams_tool_mindmap rm -rf /usr/share/lams2/lams_tool_pixlr rm -rf /usr/share/lams2/lams_tool_videorecorder rm -f /usr/share/lams2/2.3.0to2.3.1.sql # 2.4.0 stuff rm -rf /usr/share/lams2/bbb-deploy rm -rf /usr/share/lams2/imscc-deploy rm -rf /usr/share/lams2/wookie-deploy rm -rf /usr/share/lams2/lib rm -rf /usr/share/lams2/ROOT.war # Delete default ROOT.war/index.html (replaced with redirecting index.jsp) rm -f /usr/share/jboss-4.0.2/server/default/deploy/jbossweb-tomcat55.sar/ROOT.war/index.html ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0