2022-11-30 19:43:06 +01:00
#!/bin/bash
### Personalisation de la VM
cd " $( dirname $0 ) "
BOLD = ' [1m'
RED = ' [0;31m'
GREEN = ' [0;32m'
YELLOW = ' [0;33m'
BLUE = ' [0;34m'
MAGENTA = ' [0;35m'
CYAN = ' [0;36m'
NC = ' [0m' # No Color
NL = '
'
mkdir -p ./files/kaz/log/ ./files/kaz/download/ ./files/kaz/git/
chmod a+rxw ./files/kaz/log/ ./files/kaz/download/ ./files/kaz/git/
cp Vagrantfile.dist Vagrantfile
OLD_MEN = $( grep vb.memory Vagrantfile | sed -e 's%.*vb.memory\s*=\s*"\([^"]*\)".*%\1%' )
OLD_CUPS = $( grep vb.cpus Vagrantfile | sed -e 's%.*vb.cpus\s*=\s*"\([^"]*\)".*%\1%' )
MEM = $( expr $( head -1 /proc/meminfo | awk '{print $2}' ) / 4096)
CUP = $( expr $( nproc) / 2)
cat <<EOF
${ GREEN } ${ BOLD }
MEM: ${ OLD_MEN } = > ${ MEM }
CUP: ${ OLD_CUPS } = > ${ CUP }
${ NC }
Update './Vagrantfile'
EOF
sed -i Vagrantfile \
-e 's%vb.memory\s*=\s*"[^"]*"%vb.memory = "' ${ MEM } '"%' \
-e 's%vb.cpus\s*=\s*"[^"]*"%vb.cpus = "' ${ CUP } '"%'
APT_CONF = "files/.apt-mirror-config"
if [ -f " ${ APT_CONF } " ] ; then
. " ${ APT_CONF } "
fi
### Personalisation d'un cache apt
if [ -z " ${ APT_MIRROR_DEBIAN } " ] ; then
APT_MIRROR_DEBIAN = $( grep "deb\s.*/debian[^-]" /etc/apt/sources.list | head -1 | sed -e "s%.*deb\s.*://\([^/]*\)/debian.*%\1%" )
fi
if [ -z " ${ APT_MIRROR_DEBIAN_SECURITY } " ] ; then
APT_MIRROR_DEBIAN_SECURITY = $( grep "deb\s.*/debian-security" /etc/apt/sources.list | head -1 | sed -e "s%.*deb\s.*://\([^/]*\)/debian-security.*%\1%" )
fi
if [ -z " ${ APT_MIRROR_UBUNTU } " ] ; then
APT_MIRROR_UBUNTU = $( grep "deb\s.*://\([^/]*\)/ubuntu" /etc/apt/sources.list | head -1 | sed -e "s%.*deb\s.*://\([^/]*\)/ubuntu.*%\1%" )
fi
if [ -z " ${ APT_MIRROR_UBUNTU_SECURITY } " ] ; then
APT_MIRROR_UBUNTU_SECURITY = $( grep "deb\s.*://\([^/]*\)/ubuntu.*-security" /etc/apt/sources.list | head -1 | sed -e "s%.*deb\s.*://\([^/]*\)/ubuntu.*%\1%" )
fi
if [ -z " ${ APT_MIRROR_UBUNTU } " ] ; then
APT_MIRROR_UBUNTU = " ${ APT_MIRROR_DEBIAN } "
fi
if [ -z " ${ APT_MIRROR_UBUNTU_SECURITY } " ] ; then
APT_MIRROR_UBUNTU_SECURITY = " ${ APT_MIRROR_DEBIAN_SECURITY } "
fi
while : ; do
cat <<EOF
${ GREEN } ${ BOLD }
APT_MIRROR_DEBIAN = ${ APT_MIRROR_DEBIAN }
APT_MIRROR_DEBIAN_SECURITY = ${ APT_MIRROR_DEBIAN_SECURITY }
APT_MIRROR_UBUNTU = ${ APT_MIRROR_UBUNTU }
APT_MIRROR_UBUNTU_SECURITY = ${ APT_MIRROR_UBUNTU_SECURITY }
${ NC }
EOF
read -p " Update ' ${ APT_CONF } ' (ip:port or y/n)? [no] " proxy
case " ${ proxy } " in
*:* )
APT_MIRROR_DEBIAN = ${ proxy }
APT_MIRROR_DEBIAN_SECURITY = ${ proxy }
APT_MIRROR_UBUNTU = ${ proxy }
APT_MIRROR_UBUNTU_SECURITY = ${ proxy }
; ;
[ YyOo] * )
cat > " ${ APT_CONF } " <<EOF
# Generated by $(pwd)$(basename $0)
# $(date "+%x %X")
APT_MIRROR_DEBIAN = ${ APT_MIRROR_DEBIAN }
APT_MIRROR_DEBIAN_SECURITY = ${ APT_MIRROR_DEBIAN_SECURITY }
APT_MIRROR_UBUNTU = ${ APT_MIRROR_UBUNTU }
APT_MIRROR_UBUNTU_SECURITY = ${ APT_MIRROR_UBUNTU_SECURITY }
EOF
break; ;
"" | [ Nn] * ) break; ;
* ) echo "Please answer ip:port, yes or no." ; ;
2023-02-10 15:37:54 +01:00
2022-11-30 19:43:06 +01:00
esac
done
PROXY_CONF = "files/.proxy-config"
if [ -f " ${ PROXY_CONF } " ] ; then
FTP_PROXY = $( grep "ftp_proxy" " ${ PROXY_CONF } " | head -1 | sed -e "s%.*ftp_proxy\s*=\s*.*://\(.*\)%\1%" )
HTTP_PROXY = $( grep "http_proxy" " ${ PROXY_CONF } " | head -1 | sed -e "s%.*http_proxy\s*=\s*.*://\(.*\)%\1%" )
HTTPS_PROXY = $( grep "https_proxy" " ${ PROXY_CONF } " | head -1 | sed -e "s%.*https_proxy\s*=\s*.*://\(.*\)%\1%" )
fi
while : ; do
cat <<EOF
${ GREEN } ${ BOLD }
export ftp_proxy = ftp://${ FTP_PROXY }
export http_proxy = http://${ HTTP_PROXY }
export https_proxy = https://${ HTTPS_PROXY }
${ NC }
EOF
read -p " proxy in ' ${ PROXY_CONF } ' (ip:port, yes or no)? [no] " proxy
case " ${ proxy } " in
*:* )
FTP_PROXY = ${ proxy }
HTTP_PROXY = ${ proxy }
HTTPS_PROXY = ${ proxy }
; ;
[ yY] *| [ Oo] * )
cat > " ${ PROXY_CONF } " <<EOF
# Generated by $(pwd)$(basename $0)
# $(date "+%x %X")
export ftp_proxy = ftp://${ FTP_PROXY }
export http_proxy = http://${ HTTP_PROXY }
export https_proxy = https://${ HTTPS_PROXY }
EOF
break; ;
"" | [ Nn] * ) break; ;
* ) echo "Please answer ip:port, yes or no." ; ;
2023-02-10 15:37:54 +01:00
2022-11-30 19:43:06 +01:00
esac
done
2023-02-10 15:37:54 +01:00
CUSTOM_CONF = files/.customVM.sh
2022-11-30 19:43:06 +01:00
echo
if [ -f " ${ CUSTOM_CONF } " ] ; then
OLD_EDITOR = $( grep install " ${ CUSTOM_CONF } " | grep "\(joe\|emacs\|vim\)" | head -1 | sed -e "s%.*\(joe\|emacs\|vim\).*%\1%" )
fi
while : ; do
read -p " Choose editor in ' ${ CUSTOM_CONF } ' (joe, emacs, vim or no)? [ ${ GREEN } ${ BOLD } ${ OLD_EDITOR } ${ NC } ] " editor
case " ${ editor } " in
joe| emacs| vim )
if [ ! -f " ${ CUSTOM_CONF } " ] ; then
echo "#!/bin/bash" > " ${ CUSTOM_CONF } "
fi
chmod a+x " ${ CUSTOM_CONF } "
if ! grep -qw " ${ editor } " " ${ CUSTOM_CONF } " 2> /dev/null ; then
echo " DEBIAN_FRONTEND=noninteractive apt-get install -y ${ editor } " >> " ${ CUSTOM_CONF } "
echo "rsync -a /vagrant/files/.emacs* /root/" >> " ${ CUSTOM_CONF } "
fi
break; ;
"" | [ Nn] * ) break; ;
* ) echo "Please answer joe, emacs, vim or no." ; ;
esac
done