163 lines
4.7 KiB
Bash
163 lines
4.7 KiB
Bash
|
#!/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.";;
|
|||
|
|
|||
|
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.";;
|
|||
|
|
|||
|
esac
|
|||
|
done
|
|||
|
|
|||
|
CUSTOM_CONF=files/.customDocker.sh
|
|||
|
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
|