create_db_admin_user(){
gforge_db="$1"
admin_user="$2"
- su - postgres -c "psql $gforge_db -c \"INSERT INTO users (user_name, realname, firstname, lastname, email, user_pw, unix_pw, status, theme_id) VALUES ('$admin_user', 'Forge Admin', 'Forge', 'Admin', 'root@localhost.localdomain', 'INVALID', 'INVALID', 'A', 1); INSERT INTO user_group (user_id, group_id, admin_flags, role_id) VALUES (currval('users_pk_seq'), 1, 'A',17); INSERT INTO pfo_user_role (user_id, role_id) VALUES (currval('users_pk_seq'), 3)\""
+ su - postgres -c "psql $gforge_db -c \"INSERT INTO users (user_name, realname, firstname, lastname, email, user_pw, unix_pw, status, theme_id) VALUES ('$admin_user', 'Forge Admin', 'Forge', 'Admin', 'root@localhost.localdomain', 'INVALID', 'INVALID', 'A', 1); INSERT INTO pfo_user_role (user_id, role_id) VALUES (currval('users_pk_seq'), 3)\""
}
find_psql_init(){
$pgservice start
}
+psql_stopdb(){
+ # Fedora9 (an maybe newer) requires running initdb
+ if [ "$pgservice" = '/etc/init.d/postgresql' ]
+ then
+ if [ ! -d /var/lib/pgsql/data/base ]
+ then
+ service postgresql initdb #&>/dev/null
+ fi
+ fi
+
+ # Might fail if it's already running, so we'll ingnore the result
+ $pgservice stop
+}
+
get_config(){
if [ ! -d "$fusionforge_src_dir" ]
then
if [ ! -f "$fusionforge_etc_dir/config.ini.d/rpm-install-secrets.ini" ]
then
+ if [ -c /dev/urandom ]; then # ...using /dev/urandom when possible
+ sk=$(dd if=/dev/urandom count=1 bs=16 2> /dev/null | md5sum | cut -c-32)
+ else
+ sk=$(date +"%s:%N" | md5sum | cut -c-32)
+ fi
+
cat > $fusionforge_etc_dir/config.ini.d/rpm-install-secrets.ini <<-EOF
; You can edit the values here or move them to other files.
; These values should not go into world-readable files!
database_port=5432
; database_password=""
+session_key=$sk
; This file was generated by the RPM installation system.
EOF
fi
then
echo "Forge database name not found"
find_psql_init
- $pgservice stop
- $pgservice start
+ psql_stopdb
+ psql_startdb
else
find_psql_init
- $pgservice stop
+ psql_stopdb
sleep 5
- $pgservice start
+ psql_startdb
sleep 5
echo "Droping database $database"
su - postgres -c "dropdb -e $database"
su $susufix $gforge_user -c "psql $gforge_db < $fusionforge_src_dir/db/gforge.sql" >> /tmp/gforge-import.log 2>&1
msg green " * Running php db/upgrade-db.php"
- php $fusionforge_src_dir/db/upgrade-db.php >> /tmp/gforge-upgrade.log 2>&1
-
+ if ! php $fusionforge_src_dir/db/upgrade-db.php >> /tmp/gforge-upgrade.log ; then
+ msg red "upgrade-db.php failed."
+ return 1
+ fi
if [ -z "$FFORGE_ADMIN_USER" ]
then
install3_db_redhat()
{
+ export dboption="--template=template0"
install3_db
}