221 lines
5.6 KiB
Bash
221 lines
5.6 KiB
Bash
#!/bin/bash
|
|
|
|
|
|
# Arch Linux Desktop Install (archdi)
|
|
# -----------------------------------
|
|
# author : MatMoul
|
|
# https://github.com/MatMoul
|
|
# http://sourceforge.net/u/matmoul
|
|
# project : https://github.com/MatMoul/archdi
|
|
# http://sourceforge.net/projects/archdi/
|
|
# license : GPLv3 (http://opensource.org/licenses/GPL-3.0)
|
|
|
|
|
|
|
|
apptitle="Arch Linux Desktop Install (archdi) - Version: 2022.11.06.02.50.26 (GPLv3)"
|
|
version="2022.11.06.02.50.26"
|
|
cachedir=~/.cache/archdi
|
|
|
|
lastverurl1=http://archdi.sourceforge.net/version
|
|
lastverurl2=https://raw.githubusercontent.com/MatMoul/archdi/master/version
|
|
lastverurl3=https://cdn.jsdelivr.net/gh/MatMoul/archdi@master/version
|
|
|
|
binurl1=archdi.sourceforge.net/archdi
|
|
binurl2=matmoul.github.io/archdi
|
|
binurl3=https://cdn.jsdelivr.net/gh/MatMoul/archdi@master/archdi
|
|
|
|
liburl1=http://archdi.sourceforge.net/archdi-lib
|
|
liburl2=https://raw.githubusercontent.com/MatMoul/archdi-pkg/master/lib
|
|
liburl3=https://cdn.jsdelivr.net/gh/MatMoul/archdi-pkg@master/lib
|
|
|
|
pkgurl1=http://archdi.sourceforge.net/archdi-pkg
|
|
pkgurl2=https://raw.githubusercontent.com/MatMoul/archdi-pkg/master/pkg.tar
|
|
pkgurl3=https://cdn.jsdelivr.net/gh/MatMoul/archdi-pkg@master/pkg.tar
|
|
|
|
|
|
help(){
|
|
echo "-h | --help : this screen"
|
|
echo "-i | --install : install"
|
|
echo "-l | --local dir : run local archdi-pkg dir"
|
|
echo "-t | --test githubuser branch : launch a forked branch"
|
|
echo "no args : start archdi"
|
|
}
|
|
|
|
install(){
|
|
dependencies
|
|
echo "Install $apptitle ..."
|
|
echo ""
|
|
chmod 755 $0 2>/dev/null
|
|
mv $0 /usr/local/bin/archdi 2>/dev/null
|
|
echo ""
|
|
echo "$apptitle is installed."
|
|
echo "type archdi to start."
|
|
if [[ -f "/usr/bin/archdi" ]]; then
|
|
rm /usr/bin/archdi 2>/dev/null
|
|
hash -r
|
|
fi
|
|
}
|
|
|
|
run(){
|
|
dependencies
|
|
rm -R $cachedir 2>/dev/null
|
|
mkdir -p $cachedir 2>/dev/null
|
|
cd $cachedir 2>/dev/null
|
|
|
|
if [ ! "$pkgdir" = "" ]; then
|
|
cp -r $pkgdir/* . >/dev/null
|
|
else
|
|
if [ "$pkgurl" == "" ]; then
|
|
curl -L $liburl > lib
|
|
else
|
|
echo ""
|
|
echo "Downloading packages..."
|
|
curl -L $pkgurl > pkg.tar
|
|
tar -xf pkg.tar
|
|
fi
|
|
fi
|
|
|
|
chmod 755 lib 2>/dev/null
|
|
if [ "$chrootoption" = "true" ]; then
|
|
./lib --chroot
|
|
if [ ! "$?" = "0" ]; then
|
|
archdi --branch master
|
|
fi
|
|
else
|
|
if [ ! "$pkgdir" = "" ]; then
|
|
sed -i "/apptitle=/c\apptitle=\"Arch Linux Desktop Install (archdi) - local: $pkgdir (GPLv3)\"" lib
|
|
sed -i "/baseurl=/c\baseurl=$pkgdir" lib
|
|
./lib --root
|
|
if [ ! "$?" = "0" ]; then
|
|
archdi --branch master
|
|
fi
|
|
else
|
|
if [ "$branchoption" = "" ]; then
|
|
./lib --root
|
|
if [ ! "$?" = "0" ]; then
|
|
archdi --branch master
|
|
fi
|
|
else
|
|
sed -i "/apptitle=/c\apptitle=\"Arch Linux Desktop Install (archdi) - Branch: $branchoption (GPLv3)\"" lib
|
|
sed -i "/baseurl=/c\baseurl=https://raw.githubusercontent.com/$githubuser/archdi-pkg/$branchoption" lib
|
|
./lib --root
|
|
if [ ! "$?" = "0" ]; then
|
|
archdi --branch master
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
cd 2>/dev/null
|
|
rm -R $cachedir 2>/dev/null
|
|
}
|
|
|
|
dependencies(){
|
|
needinstall="false"
|
|
clear
|
|
echo "Checking internet and server connexion ..."
|
|
lastverurl=$lastverurl1
|
|
lastver=$(curl $lastverurl)
|
|
if [ "$?" = "0" ] && [ "${#lastver}" = "19" ]; then
|
|
binurl=$binurl1
|
|
liburl=$liburl1
|
|
pkgurl=$pkgurl1
|
|
else
|
|
lastverurl=$lastverurl2
|
|
lastver=$(curl $lastverurl)
|
|
if [ "$?" = "0" ] && [ "${#lastver}" = "19" ]; then
|
|
binurl=$binurl2
|
|
liburl=$liburl2
|
|
pkgurl=$pkgurl2
|
|
else
|
|
lastverurl=$lastverurl3
|
|
lastver=$(curl $lastverurl)
|
|
if [ "$?" = "0" ] && [ "${#lastver}" = "19" ]; then
|
|
binurl=$binurl3
|
|
liburl=$liburl3
|
|
pkgurl=$pkgurl3
|
|
else
|
|
exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
echo ""
|
|
echo "Checking $apptitle dependencies :"
|
|
echo ""
|
|
if [ -e /usr/bin/wget ]; then
|
|
echo "wget : installed"
|
|
else
|
|
echo "wget : not installed"
|
|
needinstall="true"
|
|
fi
|
|
if [ -e /usr/bin/whiptail ]; then
|
|
echo "libnewt : installed"
|
|
else
|
|
echo "libnewt : not installed"
|
|
needinstall="true"
|
|
fi
|
|
if [ "$needinstall" = "true" ]; then
|
|
echo ""
|
|
echo "Install missing dependencies ?"
|
|
read -p "Install missing dependencies ? (Y/n)" choice
|
|
case "$choice" in
|
|
n|N ) exit 1;;
|
|
esac
|
|
pacman -S --needed --noconfirm wget libnewt
|
|
fi
|
|
echo ""
|
|
echo "Checking bin version..."
|
|
chkupgrade
|
|
}
|
|
|
|
chkupgrade(){
|
|
if [[ "$0" = "/usr/local/bin/archdi" ]]; then
|
|
if [ ! "$version" = "$lastver" ]; then
|
|
if (whiptail --backtitle "$apptitle" --yesno "New version found !\n\nInstall last version ?" 0 0) then
|
|
cd /tmp
|
|
wget $binurl
|
|
sh archdi -i
|
|
exit 0
|
|
fi
|
|
fi
|
|
fi
|
|
}
|
|
|
|
branchoption=""
|
|
while (( "$#" )); do
|
|
case $1 in
|
|
-h|--help) help
|
|
exit 0;;
|
|
-i|--install) install
|
|
exit 0;;
|
|
--chroot) chrootoption="true";;
|
|
-b | --branch)
|
|
shift
|
|
liburl1=https://raw.githubusercontent.com/MatMoul/archdi-pkg/$1/lib
|
|
liburl2=https://raw.githubusercontent.com/MatMoul/archdi-pkg/$1/lib
|
|
pkgurl1=""
|
|
pkgurl2=""
|
|
branchoption="$1"
|
|
githubuser="MatMoul"
|
|
;;
|
|
-l | --local)
|
|
shift
|
|
apptitle="Arch Linux Desktop Install (archdi) - Version: local ($1)"
|
|
version="2022.11.06.02.50.26"
|
|
pkgdir="$1"
|
|
;;
|
|
-t | --test)
|
|
shift
|
|
liburl1=https://raw.githubusercontent.com/$1/archdi-pkg/$2/lib
|
|
liburl2=https://raw.githubusercontent.com/$1/archdi-pkg/$2/lib
|
|
pkgurl1=""
|
|
pkgurl2=""
|
|
branchoption="$2"
|
|
githubuser="$1"
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
run
|