From 65475a375156bd7d53e2218becf1b4f05dca8025 Mon Sep 17 00:00:00 2001 From: Michael Buckley Date: Fri, 28 Dec 2018 17:10:39 -0500 Subject: [PATCH] [#161847160] Add sqlcl support to other scripts --- scripts/file-to-apex | 11 +++++++++-- scripts/generate-app-id | 18 ++++++++++++++++-- scripts/generate_new_app_id.sql | 2 -- scripts/uninstall-apex | 10 +++++++++- 4 files changed, 34 insertions(+), 7 deletions(-) diff --git a/scripts/file-to-apex b/scripts/file-to-apex index 00f94b5..4fe63c9 100755 --- a/scripts/file-to-apex +++ b/scripts/file-to-apex @@ -5,9 +5,16 @@ source config/asc.conf || exit 1 NLS_LANG=.AL32UTF8 export NLS_LANG +if which -s sql; then + sql_cmd=sql +else + echo WARNING: could not find SQLcl \(sql\). Falling back to sqlplus + sql_cmd=sqlplus +fi + if [ -z "${app_alias}" ]; then #call install_apex with an empty app_alias string (will ask for user input otherwise) - sqlplus "${username}"/"${password}"@"${database_connection}" @"${script_folder}"/install_apex.sql "${apexappid}" "${workspace_name}" "${parsing_schema}" '' || exit 1 + ${sql_cmd} "${username}"/"${password}"@"${database_connection}" @"${script_folder}"/install_apex.sql "${apexappid}" "${workspace_name}" "${parsing_schema}" '' || exit 1 else - sqlplus "${username}"/"${password}"@"${database_connection}" @"${script_folder}"/install_apex.sql "${apexappid}" "${workspace_name}" "${parsing_schema}" "${app_alias}" || exit 1 + ${sql_cmd} "${username}"/"${password}"@"${database_connection}" @"${script_folder}"/install_apex.sql "${apexappid}" "${workspace_name}" "${parsing_schema}" "${app_alias}" || exit 1 fi diff --git a/scripts/generate-app-id b/scripts/generate-app-id index d6fa72c..2c114b5 100755 --- a/scripts/generate-app-id +++ b/scripts/generate-app-id @@ -1,9 +1,23 @@ # designed to be called from top level project dir script_folder=$(dirname $0) source config/asc.conf || exit 1 -sqlplus ${username}/${password}@${database_connection} @${script_folder}/generate_new_app_id.sql || exit 1 -app_id=$(head -c -1 config/new_app_id.txt | sed -e 's/[[:space:]]*$//') +if which -s sql; then + echo Running PWD $PWD + sql_cmd="sql -S" +else + echo WARNING: could not find SQLcl \(sql\). Falling back to sqlplus + sql_cmd="sqlplus -S" +fi + +tmpfile=$(mktemp -t generate_app_id) + +echo ${sql_cmd} ${username}/${password}@${database_connection} @${script_folder}/generate_new_app_id.sql $tmpfile || exit 1 +${sql_cmd} ${username}/${password}@${database_connection} @${script_folder}/generate_new_app_id.sql > $tmpfile || exit 1 + +app_id=$(cat $tmpfile) + +rm $tmpfile if [ -h config/asc.conf ]; then conf_file=$(readlink ./config/asc.conf) diff --git a/scripts/generate_new_app_id.sql b/scripts/generate_new_app_id.sql index 65a5598..36a5d0e 100644 --- a/scripts/generate_new_app_id.sql +++ b/scripts/generate_new_app_id.sql @@ -1,4 +1,3 @@ -spool config/new_app_id.txt set serveroutput on set feedback off begin @@ -6,5 +5,4 @@ begin dbms_output.put_Line(apex_application_install.get_application_id); end; / -spool off exit diff --git a/scripts/uninstall-apex b/scripts/uninstall-apex index 98dedcd..2c4438b 100755 --- a/scripts/uninstall-apex +++ b/scripts/uninstall-apex @@ -2,4 +2,12 @@ script_folder=$(dirname $0) "${script_folder}"/check_conf_file.sh || exit 1 source config/asc.conf || exit 1 -sqlplus "${username}"/"${password}"@"${database_connection}" @"${script_folder}"/uninstall_apex.sql "${apexappid}" "${workspace_name}" "${parsing_schema}" || exit 1 + +if which -s sql; then + sql_cmd=sql +else + echo WARNING: could not find SQLcl \(sql\). Falling back to sqlplus + sql_cmd=sqlplus +fi + +${sql_cmd} "${username}"/"${password}"@"${database_connection}" @"${script_folder}"/uninstall_apex.sql "${apexappid}" "${workspace_name}" "${parsing_schema}" || exit 1