Composer installer

This commit is contained in:
Ivan Jurišić 2023-12-06 12:44:58 +01:00
parent 158fce3a4a
commit 5ae31ea4ca

65
composer/composer-install.php Executable file
View File

@ -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