Hi,
I am going to package odontolinux. This is a 
management software for dental offices. I am
also the author of the software itself.
Odontolinux is written in PHP4 and uses PostgreSQL as dbms.
It is a non-US package because of PostgreSQL.
I looked for similar packages in debian sources...
but I found different ways of managing databases.
PHP files are not a problem since they go
in /var/www/dir with a simple copy command :-)
The problem is the database.
I used somethting from barracuda, something from mantis,
something from beancounter. But since I would like not to make
very big mistakes, I'd like to hear from you.
Here are my files:

preinst
postinst
makedb.sh (which is invoked by postinst)
prerm

I did not put gestionestudio.dump while is the empty PostgreSQL dump of
the database.
I am sorry for the lenght of this mail.

******************  begin preinst  *******************
#!/bin/bash
# Pre-installation script for odontolinux debian package

grep -s -q '^gestionestudio:' /etc/group ||
        (
        echo "Adding gestionestudio group"
        groupadd gestionestudio
        grep '^gestionestudio:' /etc/group)
grep -s -q '^gestionestudio:' /etc/passwd ||
        ( echo "Adding gestionestudio user"
        useradd -c "Odontolinux superuser" -d /home/gestionestudio -g gestionestudio 
-s /bin/bash gestionestudio
        grep '^gestionestudio:' /etc/passwd)

#DEBHELPER#
******************  end preinst  *******************

******************  begin postinst  *******************
#!/bin/bash

if [ "$1" = "configure" ]; then
 if [ -d /usr/doc -a ! -e /usr/doc/odontolinux -a -d /usr/share/doc/odontolinux ]; then
  ln -sf ../share/doc/odontolinux /usr/doc/odontolinux
 fi
fi
export PGUSER=postgres
/usr/share/odontolinux/makedb.sh

#DEBHELPER#
******************  end postinst  *******************

******************  begin makedb.sh  *******************
#!/bin/bash
#set -e
export SHAREDIR=/usr/share/odontolinux
export TMPDIR=/var/tmp/odontolinux
export PATH=$PATH:/usr/lib/postgresql/bin

mkdir -p $TMPDIR
if psql -ltq |grep 'gestionestudio'
then
        echo "Database exists."
else
        echo "Database does not exists, creating it."
        createdb gestionestudio
        echo "Creating postgres users..."
        userid=`psql -qt -d gestionestudio -c "
                DELETE FROM pg_shadow where usename ~ '^gestionestudio_' ;
                DELETE FROM pg_group where groname ~ '^gestionestudio_';
                create user gestionestudio createuser;"`
        echo "Creating the database..."
        psql -t -d gestionestudio <$SHAREDIR/gestionestudio.dump 2>&1 |tee 
$TMPDIR/makedb.out | grep ERR

        if grep -sq ERR $TMPDIR/makedb.out
        then
                echo -n "Do you want to examine the error file ($TMPDIR/makedb.out) 
(y/N) ? "
                read ANS
                if [ -z "$ANS" -o "$ANS" = "N" -o "$ANS" = "n" ];
                then
                        rm -f $TMPDIR/makedb.out
                        echo "$TMPDIR/makedb.out has been removed."
                else
                        cat $TMPDIR/makedb.out
                fi
        else 
                rm -f $TMPDIR/makedb.out
        fi
        rmdir $TMPDIR
fi
echo "Done."
echo "Do not forget to check if /etc/postgresql/pg_hba conf contains"
echo "the following line:"
echo "host         all         127.0.0.1     255.255.255.255   trust"
******************  end makedb.sh  *******************

******************  begin prerm  *******************
#!/bin/bash

PGPATH=/usr/lib/postgresql/bin
export PATH=$PATH:$PGPATH
export PGUSER=postgres

echo -n "Do you want to DESTROY the Odontolinux database [y/N] ? "
read YN

if [ "$YN" = "Y" -o "$YN" = "y" ]
then
        echo "Destroying Odontolinux! database..."
        if psql -ltq | grep 'gestionestudio'
        then
                psql -qt -d gestionestudio -c "DELETE FROM pg_shadow where usename = 
'gestionestudio';"
                dropdb gestionestudio
                rm -rf ~gestionestudio
                echo "Deleting gestionestudio user..."
                userdel gestionestudio
        else
                echo "Database does not exist or other error."
        fi
fi

#DEBHELPER#
******************  end prerm  *******************



-- 
Gaetano Paolone GnuPG:69A5 548C 4145 1116 8CA9  2CB5 9448 3FA3 54DB 33D3
  Debian developer - [EMAIL PROTECTED]  Home: http://www.bigpaul.org
         http://www.linuxfaq.it: LDR Linux Domande e Risposte.
http://www.gnutemberg.org - Linuxlinks: http://www.linuxlinks.it by robk


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to