distro-packages: add test for deb installation
This commit is contained in:
66
pkgs/distro-packages/gui-installer/gui-installer.sh
Executable file
66
pkgs/distro-packages/gui-installer/gui-installer.sh
Executable file
@@ -0,0 +1,66 @@
|
||||
#! /bin/sh
|
||||
|
||||
# create temp dir and ensure it is always cleaned
|
||||
trap 'clean_temp_dir' EXIT
|
||||
temp_dir=$(mktemp -d)
|
||||
|
||||
clean_temp_dir() {
|
||||
rm -rf "$temp_dir"
|
||||
}
|
||||
|
||||
is_installed() {
|
||||
name=$1
|
||||
if [ -n "$(command -v "$name")" ]; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
install_nix() {
|
||||
if is_installed curl; then
|
||||
curl --proto '=https' --tlsv1.2 -sSf -L \
|
||||
https://install.determinate.systems/nix \
|
||||
> "$temp_dir"/install_nix.sh
|
||||
elif is_installed wget; then
|
||||
wget -qO- \
|
||||
https://install.determinate.systems/nix \
|
||||
> "$temp_dir"/install_nix.sh
|
||||
else
|
||||
echo "Either curl or wget is required to install Nix. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
NIX_INSTALLER_DIAGNOSTIC_ENDPOINT="" sh "$temp_dir"/install_nix.sh install
|
||||
}
|
||||
|
||||
ask_then_install_nix() {
|
||||
echo "Clan requires Nix to be installed. Would you like to install it now? (y/n)"
|
||||
read -r response
|
||||
if [ "$response" = "y" ]; then
|
||||
install_nix
|
||||
else
|
||||
echo "Clan cannot run without Nix. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
ensure_nix_installed() {
|
||||
if ! is_installed nix; then
|
||||
ask_then_install_nix
|
||||
fi
|
||||
}
|
||||
|
||||
start_clan_gui() {
|
||||
PATH="${PATH:+$PATH:}/nix/var/nix/profiles/default/bin" \
|
||||
exec nix run \
|
||||
https://git.clan.lol/clan/clan-core/archive/main.tar.gz#clan-vm-manager \
|
||||
--no-accept-flake-config \
|
||||
--extra-experimental-features flakes nix-command -- "$@"
|
||||
}
|
||||
|
||||
main() {
|
||||
ensure_nix_installed
|
||||
start_clan_gui "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user