mirror of
https://github.com/pragma-/pbot.git
synced 2024-11-26 05:49:27 +01:00
74 lines
1.9 KiB
Bash
Executable File
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
|