23
23
24
24
read -p " Enter the full path to your $CMS_TYPE data file (e.g., $EXAMPLE_FILE ): " CMS_DATA_PATH
25
25
26
- if [ ! -f " $CMS_DATA_PATH " ]; then
27
- echo " ❌ File does not exist: $CMS_DATA_PATH "
26
+ # Remove surrounding quotes if they exist
27
+ CMS_DATA_PATH=" ${CMS_DATA_PATH% \" } "
28
+ CMS_DATA_PATH=" ${CMS_DATA_PATH# \" } "
29
+
30
+ # Store original Windows path for Docker volume mounting
31
+ ORIGINAL_PATH=" $CMS_DATA_PATH "
32
+
33
+ # Convert Windows path to Unix format for Git Bash file operations ONLY
34
+ UNIX_PATH=" $CMS_DATA_PATH "
35
+ if [[ " $CMS_DATA_PATH " =~ ^[A-Za-z]:\\ ]]; then
36
+ # Replace backslashes with forward slashes
37
+ UNIX_PATH=$( echo " $CMS_DATA_PATH " | sed ' s/\\/\//g' )
38
+ # Convert C: to /c/ format for Git Bash
39
+ UNIX_PATH=$( echo " $UNIX_PATH " | sed ' s/^\([A-Za-z]\):/\/\L\1/' )
40
+ fi
41
+
42
+ # Check if file exists using the converted path
43
+ if [ ! -f " $UNIX_PATH " ]; then
44
+ echo " ❌ File does not exist: $UNIX_PATH "
28
45
exit 1
29
46
fi
30
47
31
- FILENAME=$( basename " $CMS_DATA_PATH " )
48
+ FILENAME=$( basename " $UNIX_PATH " )
32
49
CONTAINER_PATH=" /data/$FILENAME "
33
50
34
51
export CMS_TYPE
35
- export CMS_DATA_PATH
52
+ export CMS_DATA_PATH= " $ORIGINAL_PATH "
36
53
export CONTAINER_PATH
37
54
38
55
ENV_PATH=" ./upload-api/.env"
39
56
40
57
set_env_var () {
41
58
VAR_NAME=" $1 "
42
59
VAR_VALUE=" $2 "
60
+
61
+ # Create directory if it doesn't exist
62
+ mkdir -p " $( dirname " $ENV_PATH " ) "
63
+
43
64
if grep -q " ^${VAR_NAME} =" " $ENV_PATH " 2> /dev/null; then
44
- # Update existing variable (cross-platform)
45
- sed -i.bak " s|^${VAR_NAME} =.*|${VAR_NAME} =${VAR_VALUE} |" " $ENV_PATH "
65
+ # Update existing variable - escape special characters for sed
66
+ ESCAPED_VALUE=$( printf ' %s\n' " $VAR_VALUE " | sed ' s/[[\.*^$()+?{|]/\\&/g' )
67
+ sed -i.bak " s|^${VAR_NAME} =.*|${VAR_NAME} =${ESCAPED_VALUE} |" " $ENV_PATH "
46
68
rm -f " $ENV_PATH .bak"
47
69
else
48
70
# Append new variable
@@ -51,9 +73,24 @@ set_env_var() {
51
73
}
52
74
53
75
set_env_var " CMS_TYPE" " $CMS_TYPE "
54
- set_env_var " CMS_DATA_PATH" " $CMS_DATA_PATH "
76
+ # Use original Windows path for Docker volume mounting
77
+ set_env_var " CMS_DATA_PATH" " $ORIGINAL_PATH "
55
78
set_env_var " CONTAINER_PATH" " $CONTAINER_PATH "
56
79
set_env_var " NODE_BACKEND_API" " http://migration-api:5001"
57
80
81
+ # Check if docker-compose.yml exists before running
82
+ if [ ! -f " docker-compose.yml" ]; then
83
+ echo " ❌ docker-compose.yml not found in current directory"
84
+ echo " Current directory: $( pwd) "
85
+ echo " Available files:"
86
+ ls -la
87
+ exit 1
88
+ fi
89
+
90
+ echo " ✅ Starting Docker Compose with the following configuration:"
91
+ echo " CMS_TYPE: $CMS_TYPE "
92
+ echo " CMS_DATA_PATH (for Docker): $ORIGINAL_PATH "
93
+ echo " CMS_DATA_PATH (for file check): $UNIX_PATH "
94
+ echo " CONTAINER_PATH: $CONTAINER_PATH "
58
95
59
- docker compose up --build
96
+ MSYS_NO_PATHCONV=1 docker compose up --build
0 commit comments