You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#!/bin/bash
CURDIR=$PWD REQUIRED_PKGS=(file git bc)
function usage() { echo 'usage: --host | --containers | --full | --one-container <CT_NAME>' exit 1 }
function install_host() { echo "install on: $HOSTNAME" echo ----------------------
[ "$(id -u)" -ne 0 ] && echo 'root privilege required' && exit 1
if [[ ! $CURDIR == '/opt/debian-bash' ]]; then # download and fullfill /opt/debian-bash, then run it from folder
if [[ -L /opt/debian-bash ]]; then cd /opt/debian-bash && ./install.sh "$PARAM1" exit 0 else
rm -rf /opt/debian-bash TEMP=$(mktemp -d) cd "$TEMP" || return echo "$TEMP" wget https://git.artcode.re/pvincent/debian-bash/archive/master.tar.gz tar -xzf master.tar.gz mv debian-bash /opt/ cd /opt/debian-bash || return ./install.sh "$PARAM1" rm -rf "$TEMP" exit 0 fi
else echo "--------------------------------" echo "debian-bash has been deprecated!" echo "--------------------------------" if [[ -z "$PS1" ]]; then read -rn1 -p 'Would you like to migrate to the new project named `miaou-bash`, (yN)?' answer else echo "--------------------------------------------------" echo "automatic migration from debian-bash to miaou-bash" echo "--------------------------------------------------" answer='y' fi if [[ "$answer" == 'y' ]];then pushd /tmp pushd /opt/debian-bash ./uninstall.sh popd rm -rf /opt/debian-bash curl https://git.artcode.re/miaou/miaou-bash/raw/branch/main/install.sh | sudo bash -s source /etc/bash.bashrc exit 0 fi echo "cancelled!" exit 1 fi }
function install_containers() { echo "install containers" echo --------------------
# install inside active LXC containers if [[ -f '/snap/bin/lxc' ]]; then for container in $(/snap/bin/lxc list --format=json | yq '.[] | select(.state.status == "Running") | .name' -); do install_one_container "$container" echo done fi
}
function install_one_container() { CT=$1 echo "install container <$CT>" echo ------------------------- # install inside one active LXC container if [[ -f '/snap/bin/lxc' ]]; then echo "pushed to $CT" /snap/bin/lxc file push /opt/debian-bash "${CT}/opt/" -r /snap/bin/lxc exec "$CT" -- sh -c "cd /opt/debian-bash && ./install.sh --host" fi }
PARAM1=$1
case $PARAM1 in "--host") install_host ;; "--containers") install_containers ;; "--one-container") CT=$2 if [ ! -z "$CT" ]; then install_one_container "$CT" else usage fi ;; "--full") install_host install_containers ;; *) usage ;; esac
|