diff --git a/etc/vagrant/bootstrap.sh b/etc/vagrant/bootstrap.sh index 77466fcebc358a999e90cbe9d348e77a15eb8be9..6412363038a6ee6d01df4becbd51ece928efc92e 100644 --- a/etc/vagrant/bootstrap.sh +++ b/etc/vagrant/bootstrap.sh @@ -14,6 +14,10 @@ # Environment configuration ########################### +if [ -f "/var/vagrant_provision" ]; then + exit 0 +fi + IMPORT_OSMDATA=true IMPORT_OSMDATA_CACHED=true IMPORT_SCHEDULES=true @@ -174,12 +178,12 @@ fn_import_data() cp $DOWNLOAD_DIR/$SCHEDULE_FILE $DEPLOY_DIR/$SCHEDULE_FILE > /dev/null 2>&1 echo " - importing schedule into postgis database" - gunzip -c $DEPLOY_DIR/$SCHEDULE_FILE | PGPASSWORD=$PG_DB_PASSWORD psql -U $PG_DB_USER -h localhost $PG_DB_NAME >> $WORKING_DIR/import_schedule.log 2>&1 + gunzip -c $DEPLOY_DIR/$SCHEDULE_FILE | PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost "$PG_DB_NAME" >> $WORKING_DIR/import_schedule.log 2>&1 echo " - fixing schedule permissions" - tables=`PGPASSWORD=$PG_DB_PASSWORD psql -qAt -U $PG_DB_USER -h localhost -c "SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND tableowner = 'postgres';" $PG_DB_NAME` + tables=`PGPASSWORD="$PG_DB_PASSWORD" psql -qAt -U "$PG_DB_USER" -h localhost -c "SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND tableowner = 'postgres';" "$PG_DB_NAME"` for tbl in $tables ; do - PGPASSWORD=$PG_DB_PASSWORD psql -qAt -U $PG_DB_USER -h localhost -c "ALTER TABLE $tbl OWNER TO $PG_DB_USER" $PG_DB_NAME; + PGPASSWORD="$PG_DB_PASSWORD" psql -qAt -U "$PG_DB_USER" -h localhost -c "ALTER TABLE $tbl OWNER TO $PG_DB_USER" "$PG_DB_NAME"; done fi fi @@ -189,7 +193,7 @@ fn_import_data() $DEPLOY_DIR/osm2pgrouting/build/osm2pgrouting -file "$DEPLOY_DIR/$OSM_FILE_FILTERED" -conf "$OSM2PGROUTING_MAPPING_CONF" -dbname $PG_DB_NAME -user $PG_DB_USER -passwd $PG_DB_PASSWORD -clean -prefixtables $TABLE_PREFIX >> import_osm2pgrouting.log 2>&1 echo " - creating pgRouting topology" - PGPASSWORD=$PG_DB_PASSWORD psql -U $PG_DB_USER -h localhost -d $PG_DB_NAME -c "SELECT pgr_createTopology('${TABLE_PREFIX}_ways', $TOPOLOGY_TOLERANCE, 'the_geom', 'gid');" >> $WORKING_DIR/setup_database.log 2>&1 + PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost -d "$PG_DB_NAME" -c "SELECT pgr_createTopology('${TABLE_PREFIX}ways', $TOPOLOGY_TOLERANCE, 'the_geom', 'gid');" >> $WORKING_DIR/setup_database.log 2>&1 fi if $INSTALL_NEO4J_SPATIAL; then @@ -568,22 +572,22 @@ fi if $INSTALL_POSTGRES; then echo "Creating postgresql database $PG_DB_NAME" - sudo -u postgres psql -d template1 -c "CREATE DATABASE $PG_DB_NAME;" > $WORKING_DIR/setup_database.log 2>&1 - sudo -u postgres psql -d $PG_DB_NAME -c "CREATE USER $PG_DB_USER WITH PASSWORD '$PG_DB_PASSWORD';" >> $WORKING_DIR/setup_database.log 2>&1 - sudo -u postgres psql -d $PG_DB_NAME -c "ALTER DATABASE $PG_DB_NAME OWNER TO $PG_DB_USER;" >> $WORKING_DIR/setup_database.log 2>&1 - sudo -u postgres psql -d $PG_DB_NAME -c "GRANT ALL PRIVILEGES ON DATABASE $PG_DB_NAME to $PG_DB_USER;" >> $WORKING_DIR/setup_database.log 2>&1 - sudo -u postgres psql -d $PG_DB_NAME -c "ALTER SCHEMA public OWNER TO $PG_DB_USER;" >> $WORKING_DIR/setup_database.log 2>&1 - sudo -u postgres psql -d $PG_DB_NAME -c "ALTER ROLE $PG_DB_USER SUPERUSER;" >> $WORKING_DIR/setup_database.log 2>&1 + sudo -u "postgres" psql -d template1 -c "CREATE DATABASE \"$PG_DB_NAME\";" > $WORKING_DIR/setup_database.log 2>&1 + sudo -u "postgres" psql -d "$PG_DB_NAME" -c "CREATE USER \"$PG_DB_USER\" WITH PASSWORD '$PG_DB_PASSWORD';" >> $WORKING_DIR/setup_database.log 2>&1 + sudo -u "postgres" psql -d "$PG_DB_NAME" -c "ALTER DATABASE \"$PG_DB_NAME\" OWNER TO \"$PG_DB_USER\";" >> $WORKING_DIR/setup_database.log 2>&1 + sudo -u "postgres" psql -d "$PG_DB_NAME" -c "GRANT ALL PRIVILEGES ON DATABASE \"$PG_DB_NAME\" TO \"$PG_DB_USER\";" >> $WORKING_DIR/setup_database.log 2>&1 + sudo -u "postgres" psql -d "$PG_DB_NAME" -c "ALTER SCHEMA public OWNER TO \"$PG_DB_USER\";" >> $WORKING_DIR/setup_database.log 2>&1 + sudo -u "postgres" psql -d "$PG_DB_NAME" -c "ALTER ROLE \"$PG_DB_USER\" SUPERUSER;" >> $WORKING_DIR/setup_database.log 2>&1 fi if $INSTALL_POSTGIS; then - PGPASSWORD=$PG_DB_PASSWORD psql -U $PG_DB_USER -h localhost -d $PG_DB_NAME -c "CREATE EXTENSION postgis;" >> $WORKING_DIR/setup_database.log 2>&1 - PGPASSWORD=$PG_DB_PASSWORD psql -U $PG_DB_USER -h localhost -d $PG_DB_NAME -f $SHARED_CONF_DIR/pg_procedures.sql >> $WORKING_DIR/setup_database.log 2>&1 - PGPASSWORD=$PG_DB_PASSWORD psql -U $PG_DB_USER -h localhost -d $PG_DB_NAME -f $SHARED_CONF_DIR/srid_82344_insert.sql >> $WORKING_DIR/setup_database.log 2>&1 + PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost -d "$PG_DB_NAME" -c "CREATE EXTENSION postgis;" >> $WORKING_DIR/setup_database.log 2>&1 + PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost -d "$PG_DB_NAME" -f $SHARED_CONF_DIR/pg_procedures.sql >> $WORKING_DIR/setup_database.log 2>&1 + PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost -d "$PG_DB_NAME" -f $SHARED_CONF_DIR/srid_82344_insert.sql >> $WORKING_DIR/setup_database.log 2>&1 fi if $INSTALL_PGROUTING; then - PGPASSWORD=$PG_DB_PASSWORD psql -U $PG_DB_USER -h localhost -d $PG_DB_NAME -c "CREATE EXTENSION pgRouting;" >> $WORKING_DIR/setup_database.log 2>&1 + PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost -d "$PG_DB_NAME" -c "CREATE EXTENSION pgRouting;" >> $WORKING_DIR/setup_database.log 2>&1 fi echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" @@ -621,6 +625,9 @@ if $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED; then fi fi +# Prevent second provision (done by check at the beginning of this file) +touch /var/vagrant_provision + END=$(date +%s) TOTAL=$(( $END - $START ))