diff --git a/dehydrate/build.sh b/dehydrate/build.sh index edff084..3dee9bb 100755 --- a/dehydrate/build.sh +++ b/dehydrate/build.sh @@ -1,5 +1,4 @@ #!/bin/bash -# build.sh using docker run approach set -euo pipefail # Get script directory - handle different execution contexts @@ -8,28 +7,27 @@ if [ -n "${BASH_SOURCE[0]}" ]; then else SCRIPT_DIR="$( cd "$( dirname "$0" )" &> /dev/null && pwd )" fi +PROJECT="$(basename "$(dirname "${SCRIPT_DIR}")")" -PROJECT="dehydrate" # Debug output for CI -echo "Build script running from: ${SCRIPT_DIR}" -echo "Current directory: $(pwd)" -echo "CMakeLists.txt exists: $([ -f "${SCRIPT_DIR}/CMakeLists.txt" ] && echo "yes" || echo "no")" +echo "${PROJECT} build script running from: ${SCRIPT_DIR}" + +mkdir -p "${SCRIPT_DIR}/build" +mkdir -p "${SCRIPT_DIR}/output" # Run build in container with mounted directories docker run --rm \ --user "$(id -u):$(id -g)" \ - -v "${SCRIPT_DIR}:/src:ro" \ - -v "${SCRIPT_DIR}/build:/build" \ - -v "${SCRIPT_DIR}/output:/output" \ + -v "${SCRIPT_DIR}:/app" \ + -w /app \ -e CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:-Debug}" \ gitea.jde.nz/public/dropshell-build-base:latest \ bash -c " - mkdir -p /build /output && \ - cd /build && \ - cmake -G Ninja -S /src -B . \ + cd /app/build && \ + cmake -G Ninja -S /app -B /app/build \ -DCMAKE_BUILD_TYPE=\${CMAKE_BUILD_TYPE} \ -DPROJECT_NAME=${PROJECT} && \ - cmake --build . && \ - cp ${PROJECT} /output/ - " \ No newline at end of file + cmake --build /app/build && \ + cp ${PROJECT} /app/output/ + " diff --git a/dehydrate/clean.sh b/dehydrate/clean.sh index cd967ac..8815f6e 100755 --- a/dehydrate/clean.sh +++ b/dehydrate/clean.sh @@ -3,7 +3,7 @@ set -euo pipefail SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" -PROJECT="dehydrate" +PROJECT="$(basename "$(dirname "${SCRIPT_DIR}")")" echo "Cleaning ${PROJECT}..." diff --git a/getpkg/build.sh b/getpkg/build.sh index 3d0f0aa..3dee9bb 100755 --- a/getpkg/build.sh +++ b/getpkg/build.sh @@ -1,5 +1,4 @@ #!/bin/bash -# build.sh using docker run approach set -euo pipefail # Get script directory - handle different execution contexts @@ -8,31 +7,27 @@ if [ -n "${BASH_SOURCE[0]}" ]; then else SCRIPT_DIR="$( cd "$( dirname "$0" )" &> /dev/null && pwd )" fi +PROJECT="$(basename "$(dirname "${SCRIPT_DIR}")")" -PROJECT="getpkg" # Debug output for CI -echo "Build script running from: ${SCRIPT_DIR}" -echo "Current directory: $(pwd)" -echo "CMakeLists.txt exists: $([ -f "${SCRIPT_DIR}/CMakeLists.txt" ] && echo "yes" || echo "no")" -echo "Contents of script directory:" -ls -la "${SCRIPT_DIR}" +echo "${PROJECT} build script running from: ${SCRIPT_DIR}" + +mkdir -p "${SCRIPT_DIR}/build" +mkdir -p "${SCRIPT_DIR}/output" # Run build in container with mounted directories docker run --rm \ --user "$(id -u):$(id -g)" \ - -v "${SCRIPT_DIR}:/src:ro" \ - -v "${SCRIPT_DIR}/build:/build" \ - -v "${SCRIPT_DIR}/output:/output" \ + -v "${SCRIPT_DIR}:/app" \ + -w /app \ -e CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:-Debug}" \ gitea.jde.nz/public/dropshell-build-base:latest \ bash -c " - echo 'Contents of /src:' && ls -la /src && \ - mkdir -p /build /output && \ - cd /build && \ - cmake -G Ninja -S /src -B . \ + cd /app/build && \ + cmake -G Ninja -S /app -B /app/build \ -DCMAKE_BUILD_TYPE=\${CMAKE_BUILD_TYPE} \ -DPROJECT_NAME=${PROJECT} && \ - cmake --build . && \ - cp ${PROJECT} /output/ + cmake --build /app/build && \ + cp ${PROJECT} /app/output/ " diff --git a/getpkg/clean.sh b/getpkg/clean.sh index 342a6c8..8815f6e 100755 --- a/getpkg/clean.sh +++ b/getpkg/clean.sh @@ -3,22 +3,16 @@ set -euo pipefail SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" -PROJECT="getpkg" +PROJECT="$(basename "$(dirname "${SCRIPT_DIR}")")" echo "Cleaning ${PROJECT}..." -# Remove output directory -if [ -d "${SCRIPT_DIR}/output" ]; then - echo "Removing output directory..." - rm -rf "${SCRIPT_DIR}/output" -fi - -# Remove Docker images related to this project -echo "Removing Docker images..." -docker images --filter "reference=${PROJECT}-build*" -q | xargs -r docker rmi -f - -# Remove Docker build cache -echo "Pruning Docker build cache..." -docker builder prune -f +# Remove output and build directories +for dir in "output" "build"; do + if [ -d "${SCRIPT_DIR}/${dir}" ]; then + echo "Removing ${dir} directory..." + rm -rf "${SCRIPT_DIR:?}/${dir}" + fi +done echo "✓ ${PROJECT} cleaned successfully" \ No newline at end of file