Skip to content

Commit

Permalink
Use content type to decision the unzip
Browse files Browse the repository at this point in the history
  • Loading branch information
showpune committed Dec 16, 2023
1 parent 98d1ba7 commit 047e331
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 9 deletions.
1 change: 1 addition & 0 deletions builders/container-apps-internal-registry-demo/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ RUN set -eux; \
sudo \
curl \
unzip \
grep \
; \
rm -rf /var/lib/apt/lists/*

Expand Down
25 changes: 16 additions & 9 deletions builders/container-apps-internal-registry-demo/startup-script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ file_upload_endpoint="$FILE_UPLOAD_CONTAINER_URL/$FILE_UPLOAD_BLOB_NAME"

temp_app_source_dir="/tmp/appsource"
temp_app_source_path="$temp_app_source_dir/$FILE_UPLOAD_BLOB_NAME"
temp_app_header_path="$temp_app_source_dir/header.txt"
mkdir $temp_app_source_dir

# List all the environment variables and filter the environment variable with prefix "ACA_CLOUD_BUILD_USER_ENV_", then write them to folder "/platform/env",
Expand All @@ -28,24 +29,30 @@ if [ -n "$CORRELATION_ID" ]; then
echo "$CORRELATION_ID" > "$build_env_dir/CORRELATION_ID"
fi

file_type=""
while [[ ! -f "$temp_app_source_path" ]] ||
[[ ! $file_type =~ "compressed data" ]] &&
[[ ! $file_type =~ "Zip archive data" ]] &&
[[ ! $file_type =~ "Java archive data" ]]
content_type=""
while [[ ! -f "$temp_app_source_path" ||
! "$(file $temp_app_source_path)" =~ "compressed data" &&
! $content_type =~ "application/java-archive" &&
! $content_type =~ "application/gzip" &&
! $content_type =~ "application/zip" ]]
do
echo "Waiting for app source to be uploaded. Please upload the app source to the endpoint specified in the Build resource's 'uploadEndpoint' property."
curl -H "$auth_header" -H "$version_header" -H "$date_header" -X GET "$file_upload_endpoint" -o "$temp_app_source_path" -s
curl -H "$auth_header" -H "$version_header" -H "$date_header" -X GET "$file_upload_endpoint" -o "$temp_app_source_path" -D "$temp_app_header_path" -s
sleep 5
file_type=$(file $temp_app_source_path)

if [[ -f "$temp_app_header_path" ]]; then
content_type=$(grep -i Content-Type "$temp_app_header_path" | cut -d ' ' -f2)
else
echo ""$temp_app_header_path" not found"
fi
done

# Extract app code to CNB_APP_DIR directory.
echo "Found app source at '$temp_app_source_path'. Extracting to $CNB_APP_DIR"
echo "Found app source at '$temp_app_source_path' with format '$content_type'. Extracting to $CNB_APP_DIR"
mkdir -p $CNB_APP_DIR
cd $CNB_APP_DIR

if [[ $file_type =~ "Zip archive data" || $file_type =~ "Java archive data" ]]; then
if [[ $content_type =~ "application/zip" || $content_type =~ "java-archive" ]]; then
unzip -qq "$temp_app_source_path"
else
# Keep compatibility with old logic
Expand Down

0 comments on commit 047e331

Please sign in to comment.