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
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
|