Add install_dep
This commit is contained in:
1 parent
d9a108302f
commit
3d2a871214
1 file changed
+24
-7
+24
-7
@@ -45,13 +45,34 @@ check_dependencies() {
|
|||||||
local dependencies=(curl software-properties-common node git)
|
local dependencies=(curl software-properties-common node git)
|
||||||
local missing=()
|
local missing=()
|
||||||
|
|
||||||
|
# Helper: install dependency
|
||||||
|
install_dep() {
|
||||||
|
local dep=$1
|
||||||
|
case $dep in
|
||||||
|
node)
|
||||||
|
curl -fsSL https://deb.nodesource.com/setup_22.x -o nodesource_setup.sh
|
||||||
|
sudo bash nodesource_setup.sh
|
||||||
|
sudo apt-get install -y nodejs
|
||||||
|
rm -f nodesource_setup.sh
|
||||||
|
;;
|
||||||
|
git)
|
||||||
|
sudo add-apt-repository -y ppa:git-core/ppa
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y git
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
sudo apt-get install -y "$dep"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
for dependency in "${dependencies[@]}"; do
|
for dependency in "${dependencies[@]}"; do
|
||||||
if ! command -v "$dependency" &> /dev/null; then
|
if ! command -v "$dependency" &> /dev/null; then
|
||||||
missing+=("$dependency")
|
missing+=("$dependency")
|
||||||
else
|
else
|
||||||
echo "✅ $dependency is installed ($(command -v "$dependency"))"
|
echo "✅ $dependency is installed ($(command -v "$dependency"))"
|
||||||
if $dependency --version &> /dev/null; then
|
if "$dependency" --version &> /dev/null; then
|
||||||
$dependency --version
|
"$dependency" --version | head -n 1
|
||||||
else
|
else
|
||||||
echo "ℹ️ Version information for $dependency is unavailable"
|
echo "ℹ️ Version information for $dependency is unavailable"
|
||||||
fi
|
fi
|
||||||
@@ -62,11 +83,7 @@ check_dependencies() {
|
|||||||
echo "🚨 Missing dependencies: ${missing[*]}"
|
echo "🚨 Missing dependencies: ${missing[*]}"
|
||||||
for dep in "${missing[@]}"; do
|
for dep in "${missing[@]}"; do
|
||||||
if yes_no_prompt "📦 Do you want to install $dep?"; then
|
if yes_no_prompt "📦 Do you want to install $dep?"; then
|
||||||
case $dep in
|
install_dep "$dep" || { echo "❌ Installation failed for $dep. Exiting..."; exit 1; }
|
||||||
curl ) sudo apt-get install -y curl ;;
|
|
||||||
node ) curl -fsSL https://deb.nodesource.com/setup_22.x -o nodesource_setup.sh && sudo bash nodesource_setup.sh && sudo apt-get install -y nodejs && rm -f nodesource_setup.sh ;;
|
|
||||||
git ) sudo add-apt-repository ppa:git-core/ppa && sudo apt-get update && sudo apt-get -y install git ;;
|
|
||||||
esac
|
|
||||||
else
|
else
|
||||||
echo "❌ Cannot proceed without $dep. Exiting..."
|
echo "❌ Cannot proceed without $dep. Exiting..."
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
Reference in new issue
Block a user