ref: refactored scripts
This commit is contained in:
@@ -5,59 +5,45 @@ SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
UBUNTU_VERSION="${UBUNTU_VERSION:-26.04}"
|
||||
# OPENCODE_VERSION=$(curl -fsSI https://github.com/anomalyco/opencode/releases/latest | sed -n 's/^location:.*\/tag\/v\{0,1\}\(.*\)\r$/\1/ip')
|
||||
NODE_VERSION="${NODE_VERSION:-24.21.0}"
|
||||
OPENCODE_VERSION="${OPENCODE_VERSION:-2.0.3}"
|
||||
IMAGE="${IMAGE_REPO:-localhost/opencode-dev}"
|
||||
|
||||
IMAGE_REPO="${IMAGE_REPO:-localhost/opencode-dev}"
|
||||
# IMAGE_TAG="${IMAGE_TAG:-${OPENCODE_VERSION}}"
|
||||
# IMAGE="${IMAGE_REPO}:${IMAGE_TAG}"
|
||||
IMAGE="${IMAGE_REPO}"
|
||||
|
||||
NO_CACHE=()
|
||||
if [[ "${1:-}" == "--no-cache" ]]; then
|
||||
NO_CACHE+=(--no-cache)
|
||||
shift
|
||||
fi
|
||||
|
||||
UPDATE=0
|
||||
if [[ "${1:-}" == "--update" ]]; then
|
||||
UPDATE=1
|
||||
shift
|
||||
fi
|
||||
|
||||
DRY_RUN=false
|
||||
if [[ "${1:-}" == "--dry-run" ]]; then
|
||||
DRY_RUN=true
|
||||
shift
|
||||
fi
|
||||
|
||||
if (($#)); then
|
||||
echo "Usage: $0 [--no-cache] [--update] [--dry-run]" >&2
|
||||
usage() {
|
||||
echo "Usage: $0 [--no-cache] [--update] [--dry-run]"
|
||||
exit 2
|
||||
}
|
||||
|
||||
BUILD_OPTS=()
|
||||
DRY_RUN=0
|
||||
while (($#)); do
|
||||
case "$1" in
|
||||
--no-cache) BUILD_OPTS+=(--no-cache) ;;
|
||||
--update) BUILD_OPTS+=(--no-cache --pull=newer) ;;
|
||||
--dry-run) DRY_RUN=1 ;;
|
||||
-h|--help) usage ;;
|
||||
*) echo "Unknown option: $1" >&2; usage ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
CMD=(
|
||||
podman build
|
||||
"${BUILD_OPTS[@]}"
|
||||
--build-arg "UBUNTU_VERSION=${UBUNTU_VERSION}"
|
||||
--build-arg "NODE_VERSION=${NODE_VERSION}"
|
||||
--build-arg "OPENCODE_VERSION=${OPENCODE_VERSION}"
|
||||
--build-arg "DEV_UID=$(id -u)"
|
||||
--build-arg "DEV_GID=$(id -g)"
|
||||
-t "$IMAGE"
|
||||
.
|
||||
)
|
||||
|
||||
if ((DRY_RUN)); then
|
||||
printf 'running:'; printf ' %q' "${CMD[@]}"; echo
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ((UPDATE)); then
|
||||
echo "Update requested: rebuilding ${IMAGE} with current Ubuntu package metadata."
|
||||
podman rmi $(podman images -q ${IMAGE_REPO})
|
||||
fi
|
||||
|
||||
DEV_UID="$(id -u)"
|
||||
DEV_GID="$(id -g)"
|
||||
|
||||
if [ ${DRY_RUN} == false ]; then
|
||||
podman build \
|
||||
"${NO_CACHE[@]}" \
|
||||
--build-arg "UBUNTU_VERSION=${UBUNTU_VERSION}" \
|
||||
--build-arg "NODE_VERSION=${NODE_VERSION}" \
|
||||
--build-arg "OPENCODE_VERSION=${OPENCODE_VERSION}" \
|
||||
--build-arg "DEV_UID=${DEV_UID}" \
|
||||
--build-arg "DEV_GID=${DEV_GID}" \
|
||||
-t "$IMAGE" \
|
||||
.
|
||||
|
||||
echo
|
||||
echo "Built: $IMAGE"
|
||||
else
|
||||
echo "running: podman build ${NO_CACHE[@]} --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg NODE_VERSION=${NODE_VERSION} -t $IMAGE"
|
||||
fi
|
||||
"${CMD[@]}"
|
||||
echo
|
||||
echo "Built: $IMAGE"
|
||||
|
||||
Reference in New Issue
Block a user