#!/bin/bash TEXTDOMAIN=vbootstrap TEXTDOMAINDIR=/usr/share/locale VERSION=@@VBOOTSTRAP_VERSION@@ ## VBOOTSTRAPDIR="/usr/share/vbootstrap" SUPPORTED_VERSION="$(ls $VBOOTSTRAPDIR/scripts/)" ## usage() { echo "Usage: vbootstrap _ " echo " supported _:" for ver in $SUPPORTED_VERSION do echo " $ver" done } ## if [ "$(id -u)" != "0" ] then usage echo "E: You should run vbooststrap as super user." exit 0 fi if ! [ $# -eq 3 ] then usage echo "E: You must specify a vine version, location and target." exit 0 fi INSTVER=$1 shift if [ -f "$VBOOTSTRAPDIR/scripts/$INSTVER" ] then source $VBOOTSTRAPDIR/scripts/$INSTVER else usage echo "E: $INSTVER is not supported." exit 0 fi FETCHURL=$1 shift INSTDIR=$1 shift if [ -d "$INSTDIR" ] then echo "E: Specified directory \"$INSTDIR\" is already exists." usage exit 0 fi ## APT_OPTS=" -o Dir::Etc::sourcelist=$INSTDIR/etc/vbootstrap/sources.list.d/$INSTVER -o RPM::RootDir=$INSTDIR -o Dir::Etc::sourceparts=$INSTDIR/etc/apt/sources.list.d -o Dir::State=$INSTDIR/var/lib/apt -o Dir::Cache=$INSTDIR/var/cache/apt " ## # generate source.list of $INSTVER mkdir -p $INSTDIR/etc/vbootstrap/sources.list.d sed -e "s,@@FETCHURL@@,${FETCHURL}," $VBOOTSTRAPDIR/sources.list.d/$INSTVER > $INSTDIR/etc/vbootstrap/sources.list.d/$INSTVER || exit 1 # initialize rpm database echo $"Initializing RPM database in $INSTDIR." mkdir -p $INSTDIR/var/lib/rpm rpm --initdb --root $INSTDIR # update apt database echo $"update apt database." mkdir -p $INSTDIR/var/lib/apt/lists/partial mkdir -p $INSTDIR/var/cache/apt/archives/partial apt-get -qq $APT_OPTS update # misc setup files mkdir -p $INSTDIR/etc touch $INSTDIR/etc/mtab # create some device files mkdir $INSTDIR/dev mknod $INSTDIR/dev/null c 1 3 mknod $INSTDIR/dev/console c 5 1 # install base vine linux system. echo $"Installing basesystem." for i in $BASE_PKGS do apt-get -y -qq $APT_OPTS install $i done # run post install script vbootstrap_post echo $"vbootstrap done."