2 # Create user and database, and import initial data
4 database_host=$(forge_get_config database_host)
5 database_port=$(forge_get_config database_port)
6 database_name=$(forge_get_config database_name)
7 database_user=$(forge_get_config database_user)
8 database_password=$(forge_get_config database_password)
9 source_path=$(forge_get_config source_path)
11 if [ -z "$database_name" ]; then
12 echo "Cannot get database_name"
16 # Abort if db already exists
17 if su - postgres -c "psql $database_name" </dev/null 2>/dev/null; then
18 echo "Database '$database_name' already exists, skipping."
23 su - postgres -c 'createuser -SDR fusionforge'
24 database_password_quoted=$(echo $database_password | sed -e "s/'/''/")
25 su - postgres -c psql <<EOF
26 ALTER ROLE $database_user WITH PASSWORD '$database_password_quoted' ;
30 su - postgres -c "createdb --template template0 --encoding UNICODE $database_name"
31 if ! su - postgres -c "createlang -l $database_name" | grep -q plpgsql; then \
32 su - postgres -c "createlang plpgsql $database_name"; \
35 export PGPASSFILE=$(mktemp)
36 cat <<EOF > $PGPASSFILE
37 $database_host:$database_port:$database_name:$database_user:$database_password
39 psql -h $database_host -p $database_port -U $database_user $database_name < $source_path/db/1-fusionforge-init.sql
40 psql -h $database_host -p $database_port -U $database_user $database_name <<EOF
41 INSERT INTO users (user_name, realname, firstname, lastname, email,
42 user_pw, unix_pw, status, theme_id)
43 VALUES ('admin', 'Forge Admin', 'Forge', 'Admin', 'root@localhost.localdomain',
44 'INVALID', 'INVALID', 'A', (SELECT theme_id FROM themes WHERE dirname='funky'));
48 forge_make_admin admin