3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-14 16:09:34 +01:00
pbot/applets/pbot-vm/guest/bin/setup-guest
2024-04-04 03:41:58 -07:00

74 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
# File: setup-guest
#
# Purpose: Sets up PBot VM Guest. Copies necessary files to the appropriate
# location, sets up environment variables and various configuration details.
# SPDX-FileCopyrightText: 2022 Pragmatic Software <pragma78@gmail.com>
# SPDX-License-Identifier: MIT
# determine OS/distribution
if [ -f /etc/os-release ]; then
# freedesktop.org and systemd
. /etc/os-release
OS=$PRETTY_NAME
elif type lsb_release >/dev/null 2>&1; then
# linuxbase.org
OS=$(lsb_release -si)
elif [ -f /etc/lsb-release ]; then
# For some versions of Debian/Ubuntu without lsb_release command
. /etc/lsb-release
OS=$DISTRIB_ID
else
# Fall back to uname, e.g. "Linux <version>", also works for BSD, etc.
OS=$(uname -s)
fi
echo "Detected OS: $OS"
# run known provisioning scripts
case $OS in
'openSUSE Tumbleweed')
echo "Provisioning for $OS"
./guest/provision/tumbleweed
;;
'Debian GNU/Linux trixie/sid')
echo "Provisioning for $OS"
./guest/provision/debian-trixie
;;
*)
echo "!! No automatic provisioning script for $OS. Install packages manually. !!"
echo
;;
esac
# copy executable scripts
cp guest/bin/* /usr/local/bin
# lib and language support
mkdir -p /usr/local/share/pbot-vm/
cp -r guest/lib/* /usr/local/share/pbot-vm/
# C support and GDB integration
cp guest/include/prelude.h /usr/include
# require root password for polkit actions
cp guest/polkit/* /etc/polkit-1/rules.d/
# disable networking
nmcli networking off
# set environment variables
if ! grep -qF "pbot-vm" /root/.bashrc; then
echo '# pbot-vm' >> /root/.bashrc
echo unset DEBUGINFOD_URLS >> /root/.bashrc
echo export ASAN_OPTIONS=detect_leaks=0 >> /root/.bashrc
fi
echo PBot Guest VM is now set up.
echo
echo !! Networking is now disabled. To re-enable networking run: nmcli networking on
echo
echo For changes to take effect, run this command now: source /root/.bashrc