|
@@ -0,0 +1,126 @@
|
|
|
+#!/usr/bin/env bash
|
|
|
+
|
|
|
+DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
|
|
+
|
|
|
+echo "${DIR}"
|
|
|
+
|
|
|
+APT_FILES=(
|
|
|
+ "libwxgtk3.0-0" "libwxbase3.0-0" "libsdl1.2debian" "vgabios" "seabios"
|
|
|
+)
|
|
|
+
|
|
|
+WGET_FILES=(
|
|
|
+ "http://archive.tanglu.org/tanglu/pool/main/b/bochs/bochsbios_2.6-2_all.deb"
|
|
|
+ "https://launchpad.net/ubuntu/+source/bochs/2.6-2/+build/6053938/+files/bochs-term_2.6-2_amd64.deb"
|
|
|
+ "https://launchpad.net/ubuntu/+source/bochs/2.6-2/+build/6053938/+files/bochs-wx_2.6-2_amd64.deb"
|
|
|
+ "https://launchpad.net/ubuntu/+source/bochs/2.6-2/+build/6053938/+files/bochs-x_2.6-2_amd64.deb"
|
|
|
+ "https://launchpad.net/ubuntu/+source/bochs/2.6-2/+build/6053938/+files/bochs_2.6-2_amd64.deb"
|
|
|
+ "https://launchpad.net/ubuntu/+source/bochs/2.6-2/+build/6053938/+files/bximage_2.6-2_amd64.deb"
|
|
|
+ "https://launchpad.net/ubuntu/+source/bochs/2.6-2/+build/6053938/+files/bochs-sdl_2.6-2_amd64.deb"
|
|
|
+)
|
|
|
+
|
|
|
+function download_apt_packages {
|
|
|
+
|
|
|
+ echo "Required packages from apt:"
|
|
|
+ echo " * ${APT_FILES[@]}"
|
|
|
+
|
|
|
+ read -p "Download them? (Y/N)" REPLY
|
|
|
+
|
|
|
+ case ${REPLY} in
|
|
|
+ [Yy] )
|
|
|
+ cd "${DIR}/debs"
|
|
|
+ apt-get download "${APT_FILES[@]}"
|
|
|
+ cd "${DIR}"
|
|
|
+ ;;
|
|
|
+ [Nn] )
|
|
|
+ echo "Skipping..."
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+}
|
|
|
+
|
|
|
+function download_other_packages {
|
|
|
+
|
|
|
+ echo "Required packages from web:"
|
|
|
+ for PKG in ${WGET_FILES[@]}; do
|
|
|
+ SPKG=$(basename "${PKG}")
|
|
|
+ echo " * ${SPKG}"
|
|
|
+ done
|
|
|
+
|
|
|
+ read -p "Download them? (Y/N)" REPLY
|
|
|
+
|
|
|
+ case ${REPLY} in
|
|
|
+ [Yy] )
|
|
|
+ cd "${DIR}/debs"
|
|
|
+ for PKG in ${WGET_FILES[@]}; do
|
|
|
+ SPKG=$(basename "${PKG}")
|
|
|
+ if [ -e "${SPKG}" ]; then
|
|
|
+ rm "${SPKG}"
|
|
|
+ fi
|
|
|
+
|
|
|
+ wget "${PKG}"
|
|
|
+ done
|
|
|
+ cd "${DIR}"
|
|
|
+ ;;
|
|
|
+ [Nn] )
|
|
|
+ echo "Skipping..."
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+function install_debs {
|
|
|
+ read -p "Install debs located in ./debs? (Y/N/S=show) " REPLY
|
|
|
+ case ${REPLY} in
|
|
|
+ [Yy] )
|
|
|
+ sudo dpkg -i -R "${DIR}/debs"
|
|
|
+ ;;
|
|
|
+ [Ss] )
|
|
|
+ ls "${DIR}/debs/"
|
|
|
+ install_debs
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+}
|
|
|
+
|
|
|
+function deb_dir {
|
|
|
+ if [ -d "${DIR}/debs" ]; then
|
|
|
+ echo "Folder exists: ./debs"
|
|
|
+ else
|
|
|
+ echo "Creating folder: ./debs"
|
|
|
+ mkdir "${DIR}/debs"
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
+function clean_and_exit {
|
|
|
+ if [ -d "${DIR}/debs" ]; then
|
|
|
+ read -p "Remove debs (from folder, not uninstall)? (Y/N) " REPLY
|
|
|
+ case ${REPLY} in
|
|
|
+ [Yy] )
|
|
|
+ rm -rf "${DIR}/debs/"
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+ fi
|
|
|
+ exit
|
|
|
+}
|
|
|
+
|
|
|
+function remove_bochs {
|
|
|
+ read -p "Remove old version of bochs? " REPLY
|
|
|
+ case ${REPLY} in
|
|
|
+ [Yy] )
|
|
|
+ sudo apt-get purge --remove bochs*
|
|
|
+ ;;
|
|
|
+ [Nn] )
|
|
|
+ echo "Skipping..."
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+}
|
|
|
+
|
|
|
+function main {
|
|
|
+ echo "Installation of Bochs 2.6.2 for Ubuntu 14.04.x"
|
|
|
+ deb_dir
|
|
|
+ remove_bochs
|
|
|
+ download_apt_packages
|
|
|
+ download_other_packages
|
|
|
+ install_debs
|
|
|
+ clean_and_exit
|
|
|
+}
|
|
|
+
|
|
|
+main
|