X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/609646134bcd8fc3a7fd500848220741ecc4a9d2..8a27fe370239ecb8e50d53f46b45ed61203a35ca:/build/rails-package-scripts/postinst.sh diff --git a/build/rails-package-scripts/postinst.sh b/build/rails-package-scripts/postinst.sh index e019170d71..f6ae48c0fc 100644 --- a/build/rails-package-scripts/postinst.sh +++ b/build/rails-package-scripts/postinst.sh @@ -1,4 +1,8 @@ #!/bin/sh +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + # This code runs after package variable definitions and step2.sh. set -e @@ -121,17 +125,17 @@ setup_conffile() { } prepare_database() { - DB_MIGRATE_STATUS=`$COMMAND_PREFIX bundle exec rake db:migrate:status 2>&1 || true` + DB_MIGRATE_STATUS=`$COMMAND_PREFIX bin/rake db:migrate:status 2>&1 || true` if echo "$DB_MIGRATE_STATUS" | grep -qF 'Schema migrations table does not exist yet.'; then # The database exists, but the migrations table doesn't. - run_and_report "Setting up database" $COMMAND_PREFIX bundle exec \ - rake "$RAILSPKG_DATABASE_LOAD_TASK" db:seed + run_and_report "Setting up database" $COMMAND_PREFIX bin/rake \ + "$RAILSPKG_DATABASE_LOAD_TASK" db:seed elif echo "$DB_MIGRATE_STATUS" | grep -q '^database: '; then run_and_report "Running db:migrate" \ - $COMMAND_PREFIX bundle exec rake db:migrate + $COMMAND_PREFIX bin/rake db:migrate elif echo "$DB_MIGRATE_STATUS" | grep -q 'database .* does not exist'; then if ! run_and_report "Running db:setup" \ - $COMMAND_PREFIX bundle exec rake db:setup 2>/dev/null; then + $COMMAND_PREFIX bin/rake db:setup 2>/dev/null; then echo "Warning: unable to set up database." >&2 DATABASE_READY=0 fi @@ -182,10 +186,6 @@ configure_version() { setup_confdirs /etc/arvados "$CONFIG_PATH" setup_conffile environments/production.rb environments/production.rb.example \ || true - setup_conffile application.yml application.yml.example || APPLICATION_READY=0 - if [ -n "$RAILSPKG_DATABASE_LOAD_TASK" ]; then - setup_conffile database.yml database.yml.example || DATABASE_READY=0 - fi setup_extra_conffiles echo "... done." @@ -198,45 +198,46 @@ configure_version() { cd "$RELEASE_PATH" export RAILS_ENV=production - if ! $COMMAND_PREFIX bundle --version >/dev/null; then - run_and_report "Installing bundle" $COMMAND_PREFIX gem install bundle + if ! $COMMAND_PREFIX bundle --version >/dev/null 2>&1; then + run_and_report "Installing bundler" $COMMAND_PREFIX gem install bundler --version 2.2.19 --no-document fi + run_and_report "Running bundle config set --local path $SHARED_PATH/vendor_bundle" \ + $COMMAND_PREFIX bin/bundle config set --local path $SHARED_PATH/vendor_bundle + run_and_report "Running bundle install" \ - $COMMAND_PREFIX bundle install --path $SHARED_PATH/vendor_bundle --local --quiet + $COMMAND_PREFIX bin/bundle install --local --quiet echo -n "Ensuring directory and file permissions ..." # Ensure correct ownership of a few files chown "$WWW_OWNER:" $RELEASE_PATH/config/environment.rb chown "$WWW_OWNER:" $RELEASE_PATH/config.ru chown "$WWW_OWNER:" $RELEASE_PATH/Gemfile.lock - chown -R "$WWW_OWNER:" $RELEASE_PATH/tmp + chown -R "$WWW_OWNER:" $RELEASE_PATH/tmp || true chown -R "$WWW_OWNER:" $SHARED_PATH/log + # Make sure postgres doesn't try to use a pager. + export PAGER= case "$RAILSPKG_DATABASE_LOAD_TASK" in db:schema:load) chown "$WWW_OWNER:" $RELEASE_PATH/db/schema.rb ;; db:structure:load) chown "$WWW_OWNER:" $RELEASE_PATH/db/structure.sql ;; esac chmod 644 $SHARED_PATH/log/* - chmod -R 2775 $RELEASE_PATH/tmp + chmod -R 2775 $RELEASE_PATH/tmp || true echo "... done." if [ -n "$RAILSPKG_DATABASE_LOAD_TASK" ]; then prepare_database fi - if [ 11 = "$RAILSPKG_SUPPORTS_CONFIG_CHECK$APPLICATION_READY" ]; then - run_and_report "Checking application.yml for completeness" \ - $COMMAND_PREFIX bundle exec rake config:check || APPLICATION_READY=0 - fi - - # precompile assets; thankfully this does not take long - if [ "$APPLICATION_READY" = "1" ]; then - run_and_report "Precompiling assets" \ - $COMMAND_PREFIX bundle exec rake assets:precompile -q -s 2>/dev/null \ - || APPLICATION_READY=0 + if [ -e /etc/arvados/config.yml ]; then + # warn about config errors (deprecated/removed keys from + # previous version, etc) + run_and_report "Checking configuration for completeness" \ + $COMMAND_PREFIX bin/rake config:check || APPLICATION_READY=0 else - echo "Precompiling assets... skipped." + APPLICATION_READY=0 fi + chown -R "$WWW_OWNER:" $RELEASE_PATH/tmp setup_before_nginx_restart @@ -254,5 +255,4 @@ elif [ "$1" = "0" ] || [ "$1" = "1" ] || [ "$1" = "2" ]; then configure_version fi -report_not_ready "$DATABASE_READY" "$CONFIG_PATH/database.yml" -report_not_ready "$APPLICATION_READY" "$CONFIG_PATH/application.yml" +report_not_ready "$APPLICATION_READY" "/etc/arvados/config.yml"