From 5ae31ea4ca2c012dcee954a6e93d84ad7ae6adbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Juri=C5=A1i=C4=87?= Date: Wed, 6 Dec 2023 12:44:58 +0100 Subject: [PATCH] Composer installer --- composer/composer-install.php | 65 +++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 composer/composer-install.php diff --git a/composer/composer-install.php b/composer/composer-install.php new file mode 100755 index 0000000..5563dc6 --- /dev/null +++ b/composer/composer-install.php @@ -0,0 +1,65 @@ +#!/bin/bash + +#### Variables +APT_INST="apt -y install" + +PKG_DEPS=(php) + +#### Functions +check_root() { + if [ "$EUID" -ne 0 ]; then + echo "Must be root to run $0" + exit + fi +} + +choice() { + echo -ne "[y/n]" + while true + do + read -rN1 input + case $input in + [yY][eE][sS]|[yY]) + return 0 + + break + ;; + [nN][oO]|[nN]) + return 1 + ;; + esac + done +} + +check_deps() { +for PKG_NAME in "${PKG_DEPS[@]}" + do + if ! [ -x "$(command -v $PKG_NAME)" ]; then + echo "Error: $PKG_NAME is not installed." >&2 + + echo -ne "\nInstall $PKG_NAME ? " + if choice 2>/dev/null; then + echo -ne "\n$APT_INST $PKG_NAME\n" + $APT_INST $PKG_NAME + else + echo -ne "\n\nAbort install script, package $PKG_NAME is required for work composer.\n" + exit 1; + fi + + fi + done +} + +composer_install() { + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" + php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" + php composer-setup.php + php -r "unlink('composer-setup.php');" + mv composer.phar /usr/local/bin/composer +} + +#### Main + +check_root +check_deps +composer_install