feat: add one line install script (#594)

* (feat) adds install.sh CI that auto downloads bin from github releases to current directory

* false positive

* -k gone

* Update README.md

* Update README.md

* Update install.sh

* Update install.sh

Co-authored-by: Rob Landers <landers.robert@gmail.com>

* cleanup

---------

Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
Co-authored-by: Rob Landers <landers.robert@gmail.com>
This commit is contained in:
Pulkit Kathuria
2024-10-09 04:23:56 +09:00
committed by GitHub
parent 95c381ec78
commit f2d7e212bd
2 changed files with 84 additions and 3 deletions

71
install.sh Normal file
View File

@@ -0,0 +1,71 @@
#!/bin/sh
set -e
if [ -z "${BIN_DIR}" ]; then
BIN_DIR=$(pwd)
fi
THE_ARCH_BIN=""
DEST=${BIN_DIR}/frankenphp
OS=$(uname -s)
ARCH=$(uname -m)
case ${OS} in
Linux*)
case ${ARCH} in
aarch64)
THE_ARCH_BIN="frankenphp-linux-aarch64"
;;
x86_64)
THE_ARCH_BIN="frankenphp-linux-x86_64"
;;
*)
THE_ARCH_BIN=""
;;
esac
;;
Darwin*)
case ${ARCH} in
arm64)
THE_ARCH_BIN="frankenphp-mac-arm64"
;;
*)
THE_ARCH_BIN="frankenphp-mac-x86_64"
;;
esac
;;
Windows|MINGW64_NT*)
echo "Install and use WSL to use FrankenPHP on Windows: https://learn.microsoft.com/windows/wsl/"
exit 1
;;
*)
THE_ARCH_BIN=""
;;
esac
if [ -z "${THE_ARCH_BIN}" ]; then
echo "FrankenPHP is not supported on ${OS} and ${ARCH}"
exit 1
fi
SUDO=""
# check if $DEST is writable and suppress an error message
touch "${DEST}" 2>/dev/null
# we need sudo powers to write to DEST
if [ $? -eq 1 ]; then
echo "You do not have permission to write to ${DEST}, enter your password to grant sudo powers"
SUDO="sudo"
fi
${SUDO} curl -L --progress-bar "https://github.com/dunglas/frankenphp/releases/latest/download/${THE_ARCH_BIN}" -o "${DEST}"
${SUDO} chmod +x "${DEST}"
echo "FrankenPHP downloaded successfully to ${DEST}"
echo "Move the binary to /usr/local/bin/ or another directory in your PATH to use it globally: sudo mv ${DEST} /usr/local/bin/"