85 lines
3.0 KiB
Bash
85 lines
3.0 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Info: Script to install/create/delete/update kubectl from file settings
|
||
|
|
# Author: JesusPerezLorenzo
|
||
|
|
# Release: 1.0
|
||
|
|
# Date: 12-10-2024
|
||
|
|
|
||
|
|
USAGE="install-provisioning.sh install | update | remove"
|
||
|
|
[ "$1" == "-h" ] && echo "$USAGE" && exit 1
|
||
|
|
debug=${-//[^x]/}
|
||
|
|
|
||
|
|
[ -r "env-provisioning" ] && . env-provisioning
|
||
|
|
|
||
|
|
function _install_reqs {
|
||
|
|
# KCL requires gcc and crt.o
|
||
|
|
echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections
|
||
|
|
DEBIAN_FRONTEND=noninteractive sudo apt-get -y -qq install gcc-multilib 2>/dev/null
|
||
|
|
}
|
||
|
|
|
||
|
|
_install_reqs
|
||
|
|
|
||
|
|
ROOT_PROVISIONING="${ROOT_PROVISIONING:-/usr/local}"
|
||
|
|
ROOT_BIN_PROVISIONING="${ROOT_BIN_PROVISIONING:-/usr/local/bin}"
|
||
|
|
PROVISIONING_RUN_MODE="${PROVISIONING_RUN_MODE:-mode-ui}"
|
||
|
|
|
||
|
|
if [ -r "provisioning.tar.gz" ] ; then
|
||
|
|
tar xzf provisioning.tar.gz
|
||
|
|
rm -f provisioning.tar.gz
|
||
|
|
fi
|
||
|
|
if [ ! -r "provisioning" ] ; then
|
||
|
|
echo "Error: path 'provisioning' not found"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
[ -d "$ROOT_PROVISIONING/provisioning" ] && sudo rm -r "$ROOT_PROVISIONING/provisioning"
|
||
|
|
sudo rm -f "$ROOT_BIN_PROVISIONING/provisioning"
|
||
|
|
id_u=$(id -u)
|
||
|
|
root_path=$HOME
|
||
|
|
[ "$it_u" != 0 ] && root_path="/root"
|
||
|
|
|
||
|
|
# Need this to Nushell to be activated with plugins
|
||
|
|
if [ -d "config-nushell" ] ; then
|
||
|
|
mkdir -p $HOME/.config/nushell
|
||
|
|
cp config-nushell/* $HOME/.config/nushell
|
||
|
|
if [ "$root_path" != "$HOME" ] ; then
|
||
|
|
sudo mkdir -p $root_path/.config/nushell
|
||
|
|
sudo cp config-nushell/* $root_path/.config/nushell
|
||
|
|
fi
|
||
|
|
if [ -d "$USER_HOME" ] && [ -n "$USER_NAME" ] && [ "$USER_HOME" != "$HOME" ] ; then
|
||
|
|
sudo mkdir -p $USER_HOME/.config/nushell
|
||
|
|
sudo cp config-nushell/* $USER_HOME/.config/nushell
|
||
|
|
sudo chown -R $USER_NAME $USER_HOME/.config
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
if [ -n "$debug" ] ; then
|
||
|
|
bash -x ./installer "$ROOT_PROVISIONING" "$ROOT_BIN_PROVISIONING" "$PROVISIONING_RUN_MODE"
|
||
|
|
else
|
||
|
|
./installer "$ROOT_PROVISIONING"
|
||
|
|
fi
|
||
|
|
has_provisioning=$(type -P provisioning)
|
||
|
|
[ -n "$has_provisioning" ] && echo "provisioning installed"
|
||
|
|
|
||
|
|
# Need this for Nushell with plugins copied to $HOME and $USER_HOME
|
||
|
|
if [ "$root_path" != "$HOME" ] ; then
|
||
|
|
sudo cp $root_path/.config/nushell/plugin.nu $HOME/.config/nushell
|
||
|
|
sudo chown -R $(whoami) $HOME/.config/nushell/plugin.nu
|
||
|
|
fi
|
||
|
|
if [ -d "$USER_HOME" ] && [ -n "$USER_NAME" ] && [ "$USER_HOME" != "$HOME" ] ; then
|
||
|
|
sudo cp $root_path/.config/nushell/plugin.nu $USER_HOME/.config/nushell
|
||
|
|
sudo chown $USER_NAME $USER_HOME/.config/nushell/plugin.nu
|
||
|
|
fi
|
||
|
|
sudo chmod 755 $root_path/.config/provisioning 2>/dev/null
|
||
|
|
if [ -d "$USER_HOME" ] && [ -n "$USER_NAME" ]; then
|
||
|
|
mkdir -p $USER_HOME/.config
|
||
|
|
if sudo cp -pr $root_path/.config/provisioning $USER_HOME/.config ; then
|
||
|
|
sudo chown -R $USER_NAME $USER_HOME/.config
|
||
|
|
sudo chmod 755 $USER_HOME/.config/provisioning
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
if [ ! -d "$HOME/.config/provisioning" ] ; then
|
||
|
|
mkdir -p $HOME/.config
|
||
|
|
if sudo cp -pr $root_path/.config/provisioning $HOME/.config ; then
|
||
|
|
sudo chown -R $(whoami) $HOME/.config
|
||
|
|
sudo chmod 755 $HOME/.config/provisioning
|
||
|
|
fi
|
||
|
|
fi
|