You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.7 KiB

# library functions
function confirm {
read -p "$1 ([y]es or [N]o): "
case $(echo $REPLY | tr '[A-Z]' '[a-z]') in
y | yes) echo "yes" ;;
*) echo "no" ;;
esac
}
function load_app_name {
[[ -z "${PROJECT_DIR:-}" ]] && echo '`PROJECT_DIR` variable should be initialized first!' && exit 4
local application_ruby="$PROJECT_DIR/config/application.rb"
[[ ! -f $application_ruby ]] && echo "ERROR: $application_ruby not found!" && exit 20
APP_NAME=$(grep ^module $application_ruby | cut -d' ' -f2)
APP_NAME=${APP_NAME,,} # downcase
}
function load_database_settings {
local rails_cmd="
ActiveRecord::Base.configurations.configurations
# .find{it.env_name == '$RAILS_ENV'}
.find{_1.env_name == '$RAILS_ENV'}
.configuration_hash
.each do |k,v|
puts \"#{k}\\t#{v}\"
end
"
local db_settings=$(rails runner "$rails_cmd")
ADAPTER=$(echo -e "$db_settings" | grep adapter | cut -f2)
DB_NAME=$(echo -e "$db_settings" | grep database | cut -f2)
DB_USER=$(echo -e "$db_settings" | grep user | cut -f2)
DB_PASSWORD=$(echo -e "$db_settings" | grep password | cut -f2)
}
function load_storage_settings {
STORAGE_DIR=$(rails runner 'puts ActiveStorage::Blob.service.root')
}
function load_db_version {
DB_VERSION=$(grep -E "define\(version:" "$PROJECT_DIR/db/schema.rb" | cut -d' ' -f2 | cut -d')' -f1)
}
function load_yamal_d_extra_scripts {
load_app_name
load_db_version
echo "APP_NAME=$APP_NAME"
echo "DB_VERSION=$DB_VERSION"
if [[ -f $PROJECT_DIR/bin/yamal.d/$DB_VERSION.bash ]]; then
echo '------------------------'
echo "YAMAL_D extra script found"
source $PROJECT_DIR/bin/yamal.d/$DB_VERSION.bash
echo '------------------------'
fi
}
## MAIN
load_yamal_d_extra_scripts