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.
 
 

109 lines
2.4 KiB

#!/bin/bash
BASEDIR=$PWD
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 [[ ! $BASEDIR == '/opt/debian-bash' ]]; then
# download and filfull /opt/debian-bash, then run it from folder
rm -rf /opt/debian-bash
TEMP=`mktemp -d`
cd $TEMP
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
./install.sh $PARAM1
rm -rf $TEMP
exit 0
else
#remove /etc/skel/.bashrc
if [ -e /etc/skel/.bashrc ]; then
rm /etc/skel/.bashrc
fi
ORIGINAL="ORIGINAL"
declare -a arr=(/etc/bash.bashrc /etc/inputrc /etc/vim/vimrc)
for i in "${arr[@]}"
do
if [ ! -f "$i.$ORIGINAL" ]; then
echo "$i needs installation $(basename $i)"
mv "$i" "$i.$ORIGINAL"
ln -s "$BASEDIR/$(basename $i)" "$i"
else
echo "$i" already overriden
fi
done
source /etc/bash.bashrc
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 -c n --format csv`; 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