@@ -25,6 +25,7 @@ CONFIG_FILE="${SCRIPT_DIR}/../../../../../../../resources/credentials.properties
2525
2626# Load key=value pairs from .properties file without shell expansion of values
2727load_props () {
28+ local key val
2829 while IFS= read -r line || [[ -n " $line " ]]; do
2930 [[ " $line " =~ ^[[:space:]]* $ || " $line " =~ ^[[:space:]]* # ]] && continue
3031 key= " ${line%% =* } "
@@ -35,23 +36,14 @@ load_props() {
3536 done < " $1 "
3637}
3738
38- echo " [DEBUG] SCRIPT_DIR=$SCRIPT_DIR "
39- echo " [DEBUG] CONFIG_FILE=$CONFIG_FILE "
40-
4139if [[ ! -f " $CONFIG_FILE " ]]; then
4240 echo " ERROR: Config file not found at $CONFIG_FILE "
4341 exit 1
4442fi
45- echo " [DEBUG] Config file found, loading properties..."
46- load_props " $CONFIG_FILE " || {
47- echo " ERROR: load_props failed with exit code $? "
48- exit 1
49- }
43+ load_props " $CONFIG_FILE "
5044defaultRepositoryID= " ${SDM_REPOSITORY_ID:- $defaultRepositoryID } "
5145authUrl= " ${SDM_AUTH_URL:- $authUrl } "
5246CMIS_URL= " ${CMIS_URL%/ } /"
53- echo " [DEBUG] Properties loaded. defaultRepositoryID=$defaultRepositoryID "
54- echo " [DEBUG] CMIS_URL=$CMIS_URL "
5547
5648# --- Validate positional parameters ---
5749if [[ $# -lt 1 || $# -gt 3 ]]; then
6254CMIS_NAME= " $1 "
6355PARENT_FOLDER_ID= " ${2:- } "
6456CMIS_TYPE= " ${3:- cmis: folder} "
65- echo " [DEBUG] CMIS_NAME=$CMIS_NAME , PARENT_FOLDER_ID=$PARENT_FOLDER_ID , CMIS_TYPE=$CMIS_TYPE "
6657
6758# --- Validate required config variables ---
6859for var in CMIS_URL defaultRepositoryID authUrl cmisClientID cmisClientSecret username password; do
@@ -71,20 +62,14 @@ for var in CMIS_URL defaultRepositoryID authUrl cmisClientID cmisClientSecret us
7162 exit 1
7263 fi
7364done
74- echo " [DEBUG] All required config variables validated"
7565
7666# --- Obtain OAuth2 access token (password grant) ---
77- echo " [DEBUG] Requesting token from: ${authUrl} /oauth/token"
7867TOKEN_RESPONSE= $( curl -s -X POST " ${authUrl} /oauth/token" \
7968 --data-urlencode " grant_type=password" \
8069 --data-urlencode " client_id=${cmisClientID} " \
8170 --data-urlencode " client_secret=${cmisClientSecret} " \
8271 --data-urlencode " username=${username} " \
83- --data-urlencode " password=${password} " 2>&1 ) || {
84- echo " ERROR: curl for token failed with exit code $? "
85- echo " Response: $TOKEN_RESPONSE "
86- exit 1
87- }
72+ --data-urlencode " password=${password} " )
8873
8974ACCESS_TOKEN= $( echo " $TOKEN_RESPONSE " \
9075 | grep -o ' "access_token":"[^"]*"' \
@@ -95,32 +80,24 @@ if [[ -z "$ACCESS_TOKEN" ]]; then
9580 echo " Token endpoint response: $TOKEN_RESPONSE "
9681 exit 1
9782fi
98- echo " [DEBUG] Access token obtained (length=${# ACCESS_TOKEN} )"
9983
10084# --- Execute CMIS query to find the folder by name ---
10185QUERY_URL= " ${CMIS_URL} browser/${defaultRepositoryID} "
102- echo " [DEBUG] QUERY_URL=$QUERY_URL "
10386
10487if [[ -n " ${PARENT_FOLDER_ID} " ]]; then
10588 CMIS_QUERY=" SELECT cmis:objectId FROM ${CMIS_TYPE} WHERE cmis:name = '${CMIS_NAME} ' AND IN_FOLDER('${PARENT_FOLDER_ID} ')"
10689else
10790 CMIS_QUERY=" SELECT cmis:objectId FROM ${CMIS_TYPE} WHERE cmis:name = '${CMIS_NAME} '"
10891fi
109- echo " [DEBUG] CMIS_QUERY=$CMIS_QUERY "
11092RESPONSE= $( curl -s -w " \n%{http_code}" \
11193 -X GET " ${QUERY_URL} " \
11294 -H " Authorization: Bearer ${ACCESS_TOKEN} " \
11395 -G \
11496 --data-urlencode " cmisselector=query" \
115- --data-urlencode " q=${CMIS_QUERY} " 2>&1 ) || {
116- echo " ERROR: curl for CMIS query failed with exit code $? "
117- echo " Response: $RESPONSE "
118- exit 1
119- }
97+ --data-urlencode " q=${CMIS_QUERY} " )
12098
12199HTTP_CODE= $( echo " $RESPONSE " | tail -n1)
122100BODY= $( echo " $RESPONSE " | sed ' $d' )
123- echo " [DEBUG] CMIS query HTTP_CODE=$HTTP_CODE "
124101
125102if [[ " $HTTP_CODE " != " 200" ]]; then
126103 echo " ERROR: CMIS query failed (HTTP ${HTTP_CODE} )."
0 commit comments