50 lines
No EOL
1.4 KiB
Bash
Executable file
50 lines
No EOL
1.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# This script returns the normalized machine architecture (amd64, arm64, or arm).
|
|
# An error is returned if the architecture is currently not supported by PhotoPrism.
|
|
|
|
if [[ $DOCKER_ARCH ]]; then
|
|
SYSTEM_ARCH=$DOCKER_ARCH
|
|
elif [[ $OS == "Windows_NT" ]]; then
|
|
if [[ $PROCESSOR_ARCHITEW6432 == "AMD64" || $PROCESSOR_ARCHITECTURE == "AMD64" ]]; then
|
|
SYSTEM_ARCH=amd64
|
|
else
|
|
echo "Unsupported Windows Architecture" 1>&2
|
|
exit 1
|
|
fi
|
|
else
|
|
SYSTEM_ARCH=$(arch)
|
|
fi
|
|
|
|
BUILD_ARCH=${BUILD_ARCH:-$SYSTEM_ARCH}
|
|
|
|
# Value Normalized
|
|
# aarch64 arm64 # the latest v8 arm architecture. Used on Apple M1, AWS Graviton, and Raspberry Pi 3's and 4's
|
|
# armhf arm # 32-bit v7 architecture. Used in Raspberry Pi 3 and Pi 4 when 32bit Raspbian Linux is used
|
|
# armel arm/v6 # 32-bit v6 architecture. Used in Raspberry Pi 1, 2, and Zero
|
|
# i386 386 # older Intel 32-Bit architecture, originally used in the 386 processor
|
|
# x86_64 amd64 # all modern Intel-compatible x84 64-Bit architectures
|
|
# x86-64 amd64 # same
|
|
|
|
case $BUILD_ARCH in
|
|
amd64 | AMD64 | x86_64 | x86-64)
|
|
BUILD_ARCH=amd64
|
|
;;
|
|
|
|
arm64 | ARM64 | aarch64)
|
|
BUILD_ARCH=arm64
|
|
;;
|
|
|
|
arm | ARM | aarch | armv7l | armhf)
|
|
BUILD_ARCH=arm
|
|
;;
|
|
|
|
*)
|
|
echo "Unsupported Machine Architecture: \"$BUILD_ARCH\"" 1>&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
export BUILD_ARCH=$BUILD_ARCH
|
|
|
|
echo $BUILD_ARCH |