Make install entrypoint root and sudo friendly
Этот коммит содержится в:
+23
-5
@@ -3,19 +3,37 @@ set -euo pipefail
|
|||||||
|
|
||||||
# ==========================================================
|
# ==========================================================
|
||||||
# Virtuality public installer entrypoint
|
# Virtuality public installer entrypoint
|
||||||
# Preferred one-command install file.
|
# Universal one-command install file.
|
||||||
#
|
#
|
||||||
# Usage:
|
# Works both as root and as a regular sudo-capable user:
|
||||||
# curl -fsSL https://raw.githubusercontent.com/viktor138irk/virtuality/main/install.sh | sudo bash
|
# curl -fsSL https://raw.githubusercontent.com/viktor138irk/virtuality/main/install.sh | bash
|
||||||
# ==========================================================
|
# ==========================================================
|
||||||
|
|
||||||
INSTALL_URL="${VIRTUALITY_BOOTSTRAP_URL:-https://raw.githubusercontent.com/viktor138irk/virtuality/main/bootstrap.sh}"
|
INSTALL_URL="${VIRTUALITY_BOOTSTRAP_URL:-https://raw.githubusercontent.com/viktor138irk/virtuality/main/bootstrap.sh}"
|
||||||
|
TMP_FILE="/tmp/virtuality-install-$$.sh"
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
rm -f "$TMP_FILE" 2>/dev/null || true
|
||||||
|
}
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
if command -v curl >/dev/null 2>&1; then
|
if command -v curl >/dev/null 2>&1; then
|
||||||
curl -fsSL "$INSTALL_URL" | bash
|
curl -fsSL "$INSTALL_URL" -o "$TMP_FILE"
|
||||||
elif command -v wget >/dev/null 2>&1; then
|
elif command -v wget >/dev/null 2>&1; then
|
||||||
wget -qO- "$INSTALL_URL" | bash
|
wget -qO "$TMP_FILE" "$INSTALL_URL"
|
||||||
else
|
else
|
||||||
echo "Ошибка: нужен curl или wget для загрузки установщика Virtuality."
|
echo "Ошибка: нужен curl или wget для загрузки установщика Virtuality."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
chmod +x "$TMP_FILE"
|
||||||
|
|
||||||
|
if [[ "${EUID}" -eq 0 ]]; then
|
||||||
|
bash "$TMP_FILE"
|
||||||
|
else
|
||||||
|
if ! command -v sudo >/dev/null 2>&1; then
|
||||||
|
echo "Ошибка: нужен root или sudo. Запусти под root или установи sudo."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
sudo --preserve-env=VIRTUALITY_USER,VIRTUALITY_WEB_PORT,VIRTUALITY_MIN_ROOT_FREE_MB,VIRTUALITY_MIN_VAR_FREE_MB,VIRTUALITY_MIN_RAM_MB,VIRTUALITY_MIN_CPU_CORES,VIRTUALITY_SKIP_REQUIREMENTS,VIRTUALITY_SETUP_BRIDGE,VIRTUALITY_BRIDGE_IFACE,VIRTUALITY_CREATE_TEST_VM,VIRTUALITY_REPO_URL,VIRTUALITY_PROJECT_BASE_DIR,VIRTUALITY_PROJECT_DIR,VIRTUALITY_BOOTSTRAP_URL bash "$TMP_FILE"
|
||||||
|
fi
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user