Skip to content

Commit

Permalink
[aem-sdk] improve missing sdk detection
Browse files Browse the repository at this point in the history
  • Loading branch information
Juan Ayala committed Aug 8, 2024
1 parent c7fd087 commit 6267b20
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 31 deletions.
29 changes: 14 additions & 15 deletions src/aem-sdk/bin/_globals.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,23 @@ function get_runmode_jar()

function get_aem_sdk_zip()
{
local sdks_dir="${AEM_SDK_SDKS_DIRECTORY}"
if [ ! -d ${sdks_dir} ]; then
sdks_dir="$(pwd)"
fi
local searchdir="${AEM_SDK_SDKS_DIRECTORY}"
[ ! -d ${searchdir} ] && return 1

local sdk="${sdks_dir}/aem-sdk-${AEM_SDK_VERSION}.zip"
local sdk="${searchdir}/aem-sdk-${AEM_SDK_VERSION}.zip"
if [ "${AEM_SDK_VERSION}" = "automatic" ]; then
sdk="$(find ${sdks_dir}/aem-sdk-*.zip -maxdepth 0 -type f | sort -V | tail -n1)"
sdk="$(find ${searchdir} -maxdepth 1 -iname 'aem-sdk-*.zip' -type f | sort -V | tail -n1)"
fi

if [ ! -f "${sdk}" ]; then
cat <<EOM
No AEM SDK found.
Search Path: ${sdks_dir}
Search Version: ${AEM_SDK_VERSION}
[ ! -f "${sdk}" ] && return 1 || echo "${sdk}"
}

function aem_sdk_not_found()
{
cat <<EOM
AEM SDK not found.
sdksDirectory: '${AEM_SDK_SDKS_DIRECTORY:-empty}'
sdkVersion: '${AEM_SDK_VERSION}'
EOM
exit 1
else
echo "${sdk}"
fi
exit 42
}
8 changes: 4 additions & 4 deletions src/aem-sdk/bin/aem-sdk-setup-dispatcher.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

source "$(dirname $0)/_globals.sh"

# extract the dispatcher install script
sdkzip=$(get_aem_sdk_zip)
sdkzip=$(get_aem_sdk_zip) || aem_sdk_not_found

# extract the dispatcher install script
sudo unzip -d ${AEM_SDK_FEATURE_DIR} ${sdkzip} 'aem-sdk-dispatcher-tools-*-unix.sh'
installscript="$(find ${AEM_SDK_FEATURE_DIR}/aem-sdk-dispatcher-tools-*-unix.sh -maxdepth 0 -type f | tail -n1)"
installscript="$(find ${AEM_SDK_FEATURE_DIR} -maxdepth 1 -iname 'aem-sdk-dispatcher-tools-*-unix.sh' -type f | tail -n1)"

# run install script (in its directory)
sudo chmod a+x ${installscript}
Expand All @@ -17,4 +17,4 @@ sudo rm ${installscript}
cd ${cwd}

# rename directory
sudo find ${AEM_SDK_FEATURE_DIR}/dispatcher-sdk-* -maxdepth 0 -type d -execdir mv {} dispatcher \;
sudo find ${AEM_SDK_FEATURE_DIR} -maxdepth 1 -iname 'dispatcher-sdk-*' -type d -execdir mv {} dispatcher \;
6 changes: 3 additions & 3 deletions src/aem-sdk/bin/aem-sdk-setup-service.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ source "$(dirname $0)/_globals.sh"
# script args
runmode="${1}"

# extract and rename the quickstart jar
sdkzip=$(get_aem_sdk_zip)
sdkzip=$(get_aem_sdk_zip) || aem_sdk_not_found

# extract and rename the quickstart jar
runmodedir="${AEM_SDK_FEATURE_DIR}/${runmode}"
sudo unzip -d ${runmodedir} ${sdkzip} 'aem-sdk-quickstart-*.jar'
jar_file=$(get_runmode_jar ${runmode})
sudo find ${runmodedir}/aem-sdk-quickstart-*.jar -maxdepth 0 -type f -execdir mv {} ${jar_file} \;
sudo find ${runmodedir} -maxdepth 1 -iname 'aem-sdk-quickstart-*.jar' -type f -execdir mv {} ${jar_file} \;

# make user owner of crx-quickstart (it is a volume mount)
sudo chown ${USER} "${runmodedir}/crx-quickstart"
12 changes: 4 additions & 8 deletions src/aem-sdk/bin/start-aem
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,16 @@ source "$(dirname $0)/_globals.sh"
if [[ "${service}" == "dispatcher" ]]; then

toolsdir="${AEM_SDK_FEATURE_DIR}/dispatcher"
if [[ ! -d ${toolsdir} ]]; then
# install it
$(dirname $0)/aem-sdk-setup-dispatcher.sh
fi
# install it
[[ ! -d ${toolsdir} ]] && $(dirname $0)/aem-sdk-setup-dispatcher.sh || exit
# run it
docker_run.sh src host.docker.internal:${AEM_SDK_PUBLISH_PORT} ${AEM_SDK_DISPATCHER_PORT}

elif [[ "${service}" == "author" || "${service}" == "publish" ]]; then

jar="${AEM_SDK_FEATURE_DIR}/${service}/$(get_runmode_jar ${service})"
if [[ ! -f ${jar} ]]; then
# install it
$(dirname $0)/aem-sdk-setup-service.sh ${service}
fi
# install it
[[ ! -f ${jar} ]] && $(dirname $0)/aem-sdk-setup-service.sh ${service} || exit
# run it
port=$(get_runmode_port ${service})
jvm_opts="-agentlib:jdwp=transport=dt_socket,address=*:3${port},server=y,suspend=n"
Expand Down
2 changes: 1 addition & 1 deletion src/aem-sdk/devcontainer-feature.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "aem-sdk",
"version": "1.2.0",
"version": "1.2.1",
"name": "Adobe Experience Manager SDK",
"description": "Setup author and publish services. And the dispatcher tools. Requires the AEM as a Cloud Service SDK.",
"options": {
Expand Down

0 comments on commit 6267b20

Please sign in to comment.