install.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #!/usr/bin/env bash
  2. DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
  3. echo "${DIR}"
  4. APT_FILES=(
  5. "libwxgtk3.0-0" "libwxbase3.0-0" "libsdl1.2debian" "vgabios" "seabios"
  6. )
  7. WGET_FILES=(
  8. "http://archive.tanglu.org/tanglu/pool/main/b/bochs/bochsbios_2.6-2_all.deb"
  9. "https://launchpad.net/ubuntu/+source/bochs/2.6-2/+build/6053938/+files/bochs-term_2.6-2_amd64.deb"
  10. "https://launchpad.net/ubuntu/+source/bochs/2.6-2/+build/6053938/+files/bochs-wx_2.6-2_amd64.deb"
  11. "https://launchpad.net/ubuntu/+source/bochs/2.6-2/+build/6053938/+files/bochs-x_2.6-2_amd64.deb"
  12. "https://launchpad.net/ubuntu/+source/bochs/2.6-2/+build/6053938/+files/bochs_2.6-2_amd64.deb"
  13. "https://launchpad.net/ubuntu/+source/bochs/2.6-2/+build/6053938/+files/bximage_2.6-2_amd64.deb"
  14. "https://launchpad.net/ubuntu/+source/bochs/2.6-2/+build/6053938/+files/bochs-sdl_2.6-2_amd64.deb"
  15. )
  16. function download_apt_packages {
  17. echo "Required packages from apt:"
  18. echo " * ${APT_FILES[@]}"
  19. read -p "Download them? (Y/N)" REPLY
  20. case ${REPLY} in
  21. [Yy] )
  22. cd "${DIR}/debs"
  23. apt-get download "${APT_FILES[@]}"
  24. cd "${DIR}"
  25. ;;
  26. [Nn] )
  27. echo "Skipping..."
  28. ;;
  29. esac
  30. }
  31. function download_other_packages {
  32. echo "Required packages from web:"
  33. for PKG in ${WGET_FILES[@]}; do
  34. SPKG=$(basename "${PKG}")
  35. echo " * ${SPKG}"
  36. done
  37. read -p "Download them? (Y/N)" REPLY
  38. case ${REPLY} in
  39. [Yy] )
  40. cd "${DIR}/debs"
  41. for PKG in ${WGET_FILES[@]}; do
  42. SPKG=$(basename "${PKG}")
  43. if [ -e "${SPKG}" ]; then
  44. rm "${SPKG}"
  45. fi
  46. wget "${PKG}"
  47. done
  48. cd "${DIR}"
  49. ;;
  50. [Nn] )
  51. echo "Skipping..."
  52. ;;
  53. esac
  54. }
  55. function install_debs {
  56. read -p "Install debs located in ./debs? (Y/N/S=show) " REPLY
  57. case ${REPLY} in
  58. [Yy] )
  59. sudo dpkg -i -R "${DIR}/debs"
  60. ;;
  61. [Ss] )
  62. ls "${DIR}/debs/"
  63. install_debs
  64. ;;
  65. esac
  66. }
  67. function deb_dir {
  68. if [ -d "${DIR}/debs" ]; then
  69. echo "Folder exists: ./debs"
  70. else
  71. echo "Creating folder: ./debs"
  72. mkdir "${DIR}/debs"
  73. fi
  74. }
  75. function clean_and_exit {
  76. if [ -d "${DIR}/debs" ]; then
  77. read -p "Remove debs (from folder, not uninstall)? (Y/N) " REPLY
  78. case ${REPLY} in
  79. [Yy] )
  80. rm -rf "${DIR}/debs/"
  81. ;;
  82. esac
  83. fi
  84. exit
  85. }
  86. function remove_bochs {
  87. read -p "Remove old version of bochs? " REPLY
  88. case ${REPLY} in
  89. [Yy] )
  90. sudo apt-get purge --remove bochs*
  91. ;;
  92. [Nn] )
  93. echo "Skipping..."
  94. ;;
  95. esac
  96. }
  97. function main {
  98. echo "Installation of Bochs 2.6.2 for Ubuntu 14.04.x"
  99. deb_dir
  100. remove_bochs
  101. download_apt_packages
  102. download_other_packages
  103. install_debs
  104. clean_and_exit
  105. }
  106. main