diff --git a/spiffworkflow-backend/bin/git_commit_bpmn_models_repo b/spiffworkflow-backend/bin/git_commit_bpmn_models_repo index f34400ec5..b31a6d27a 100755 --- a/spiffworkflow-backend/bin/git_commit_bpmn_models_repo +++ b/spiffworkflow-backend/bin/git_commit_bpmn_models_repo @@ -44,7 +44,22 @@ function run() { git push --set-upstream origin "${git_branch}" } -exec {lock_fd}>/var/lock/spiff-workflow-git-lock || failed_to_get_lock +lock_directory="/var/lock" +if [[ ! -d "${lock_directory}" ]]; then + lock_directory="/tmp" +fi + +if ! command -v flock >/dev/null 2>&1; then + if command -v brew >/dev/null 2>&1; then + # some hero made this available on mac: https://github.com/discoteq/flock + brew install flock + else + >&2 echo "ERROR: flock is not installed and we cannot install it." + exit 1 + fi +fi + +exec {lock_fd}>"${lock_directory}/spiffworkflow-git-lock" || failed_to_get_lock flock --timeout 60 "${lock_fd}" || failed_to_get_lock run flock -u "${lock_fd}" diff --git a/spiffworkflow-backend/bin/login_with_user b/spiffworkflow-backend/bin/login_with_user new file mode 100755 index 000000000..eb4fcc2c6 --- /dev/null +++ b/spiffworkflow-backend/bin/login_with_user @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +function error_handler() { + >&2 echo "Exited with BAD EXIT CODE '${2}' in ${0} script at line: ${1}." + exit "$2" +} +trap 'error_handler ${LINENO} $?' ERR +set -o errtrace -o errexit -o nounset -o pipefail + +username="${1:-}" +password="${2:-}" +if [[ -z "$password" ]]; then + password="$username" +fi + +if [[ -z "${1:-}" ]]; then + >&2 echo "usage: $(basename "$0") [username] [password]" + exit 1 +fi + +script_dir="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + +if [[ -z "${REALM_NAME:-}" ]]; then + REALM_NAME=spiffworkflow +fi + +access_token=$("${script_dir}/get_token" "$username" "$password" "$REALM_NAME" || echo '') +if [[ -z "$access_token" || "$access_token" == "null" ]]; then + >&2 echo "ERROR: failed to get access token for '$username'" +else + + echo "access_token: ${access_token}" + curl -v -X POST "${BACKEND_BASE_URL}/v1.0/login_with_access_token?access_token=${access_token}" -H "Authorization: Bearer $access_token" +fi diff --git a/spiffworkflow-backend/bin/login_with_user_list b/spiffworkflow-backend/bin/login_with_user_list new file mode 100755 index 000000000..401925779 --- /dev/null +++ b/spiffworkflow-backend/bin/login_with_user_list @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +function error_handler() { + >&2 echo "Exited with BAD EXIT CODE '${2}' in ${0} script at line: ${1}." + exit "$2" +} +trap 'error_handler ${LINENO} $?' ERR +set -o errtrace -o errexit -o nounset -o pipefail + +script_dir="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + +if [[ -z "${KEYCLOAK_BASE_URL:-}" ]]; then + # export KEYCLOAK_BASE_URL=http://localhost:7002 + export KEYCLOAK_BASE_URL=https://keycloak.dev.spiffworkflow.org +fi +if [[ -z "${BACKEND_BASE_URL:-}" ]]; then + # export BACKEND_BASE_URL=http://localhost:7000 + export BACKEND_BASE_URL=https://api.dev.spiffworkflow.org +fi + +user_list="${1}" +if [[ -z "${1:-}" ]]; then + >&2 echo "usage: $(basename "$0") [user_list]" + exit 1 +fi +export REALM_NAME=${2-spiffworkflow} + +while read -r input_line; do + if ! grep -qE '(^#|email)' <<<"$input_line" ; then + username=$(awk -F '@' '{print $1}' <<<"$input_line") + password=$(awk -F ',' '{print $2}' <<<"$input_line") + "${script_dir}/login_with_user" "$username" "$password" + fi +done <"$user_list"