vbootstrap.sh.in 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #!/bin/bash
  2. VERSION=@@VBOOTSTRAP_VERSION@@
  3. ##
  4. VBOOTSTRAPDIR="/usr/share/vbootstrap"
  5. SUPPORTED_VERSION="$(ls $VBOOTSTRAPDIR/scripts/)"
  6. ##
  7. usage()
  8. {
  9. echo "Usage: vbootstrap <version> <targetdir>"
  10. echo " supported version:"
  11. for ver in $SUPPORTED_VERSION
  12. do
  13. echo " $ver"
  14. done
  15. }
  16. ##
  17. if [ "$(id -u)" != "0" ]
  18. then
  19. usage
  20. echo "E: You should run vbooststrap as super user."
  21. exit 0
  22. fi
  23. if ! [ $# -eq 2 ]
  24. then
  25. usage
  26. echo "E: You must specify a vine version and target."
  27. exit 0
  28. fi
  29. INSTVER=$1
  30. shift
  31. if [ -f "$VBOOTSTRAPDIR/scripts/$INSTVER" ]
  32. then
  33. source $VBOOTSTRAPDIR/scripts/$INSTVER
  34. else
  35. usage
  36. echo "E: $INSTVER is not supported."
  37. exit 0
  38. fi
  39. INSTDIR=$1
  40. shift
  41. if [ -d "$INSTDIR" ]
  42. then
  43. echo "E: Specified directory \"$INSTDIR\" is already exists."
  44. usage
  45. exit 0
  46. fi
  47. ##
  48. APT_OPTS="$APT_LINE -o RPM::RootDir=$INSTDIR -o Dir::Etc::sourceparts=$INSTDIR/etc/apt/sources.list.d "
  49. ##
  50. # initialize rpm database
  51. echo "Initializing RPM database in $INSTDIR."
  52. mkdir -p $INSTDIR/var/lib/rpm
  53. rpm --initdb --root $INSTDIR
  54. # update apt database
  55. echo "update apt database."
  56. apt-get -qq $APT_OPTS update
  57. # misc setup files
  58. mkdir -p $INSTDIR/etc
  59. touch $INSTDIR/etc/mtab
  60. # create some device files
  61. mkdir $INSTDIR/dev
  62. mknod $INSTDIR/dev/null c 1 3
  63. mknod $INSTDIR/dev/console c 5 1
  64. # install base vine linux system.
  65. echo "Installing basesystem."
  66. for i in $BASE_PKGS
  67. do
  68. apt-get -y -qq $APT_OPTS install $i
  69. done
  70. # run post install script
  71. vbootstrap_post
  72. echo "vboostrap done."