#!/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.11.02.04.49 (GPLv3)" version="2022.11.11.02.04.49" 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 echo "If archdi doesn't start after update, run '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/dialog ]; then echo "dialog : installed" else echo "dialog : 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 dialog 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 curl -LO $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.11.02.04.49" 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