NNBnh/superb-bootstrap

[Suggestion] Clone and install paru only if it's not already installed

xfzv opened this issue · 2 comments

xfzv commented

As I was testing the packages install feature, I noticed that this function was run although I already had paruAUR installed:

superb-bootstrap/setup

Lines 88 to 94 in 1e478bc

superbbootstrap_AUR() {
sudo pacman --sync --refresh --noconfirm --needed git base-devel
git clone 'https://aur.archlinux.org/paru.git' "$TEMPORARY/paru"
cd "$TEMPORARY/paru" || exit 1
makepkg -si
cd "$WD" || exit 1
}


[ "$packagemanager_main" = 'Pacman' ] && packagemanager_list="$packagemanager_list AUR"

What about using something like this instead, so that paruAUR is cloned and installed only if it's not already installed?

if [[ "$packagemanager_main"  = 'Pacman' ]]; then
    if ! command -v "paru" >/dev/null; then
        packagemanager_list="$packagemanager_list AUR"
    fi
        packagemanager_list="$packagemanager_list Flatpak"
fi
NNBnh commented

packagemanager_list isn't just to setup/install the package managers themself, it's also to install packages from that package manager. So we will change superbbootstrap_AUR() directly:

superbbootstrap_AUR() {
	if ! command -v 'paru' >/dev/null; then
		$PERMISSION_COMMAND pacman --sync --noconfirm --needed git base-devel
		git clone 'https://aur.archlinux.org/paru.git' "$TEMPORARY/paru"
		cd "$TEMPORARY/paru" || exit 1
		makepkg -si
		cd "$WD" || exit 1
	else
		printf '%s\n' "Paru has been installed"
	fi
}

This will be add to SBB 1.5.4

NNBnh commented

This has been add to SBB 1.5.4