source: projects/vbootstrap/trunk/vbootstrap.sh.in @ 5364

Revision 5364, 2.0 KB checked in by munepi, 12 years ago (diff)

updated vbootstrap.sh.in:

  • specify a location to fetch base packages;

updated vbuilder.sh.in:

  • added --fetch-url, --profile options
RevLine 
[118]1#!/bin/bash
2
[2522]3TEXTDOMAIN=vbootstrap
4TEXTDOMAINDIR=/usr/share/locale
5
[118]6VERSION=@@VBOOTSTRAP_VERSION@@
7
8##
9
10VBOOTSTRAPDIR="/usr/share/vbootstrap"
11SUPPORTED_VERSION="$(ls $VBOOTSTRAPDIR/scripts/)"
12
13##
14
15usage()
16{
[5364]17  echo "Usage: vbootstrap <version>_<arch> <url> <targetdir>"
[3676]18  echo "  supported <version>_<arch>:"
[118]19  for ver in $SUPPORTED_VERSION
20  do
21    echo "    $ver"
22  done
23}
24
25##
26
27if [ "$(id -u)" != "0" ]
28then
29  usage
30  echo "E: You should run vbooststrap as super user."
31  exit 0
32fi
33
[5364]34if ! [ $# -eq 3 ]
[118]35then
36  usage
[5364]37  echo "E: You must specify a vine version, location and target."
[118]38  exit 0
39fi
40
41INSTVER=$1
42shift
43
44if [ -f "$VBOOTSTRAPDIR/scripts/$INSTVER" ]
45then
46  source $VBOOTSTRAPDIR/scripts/$INSTVER
47else
48  usage
49  echo "E: $INSTVER is not supported."
50  exit 0
51fi
52
[5364]53FETCHURL=$1
54shift
55
[118]56INSTDIR=$1
57shift
58
59if [ -d "$INSTDIR" ]
60then
61  echo "E: Specified directory \"$INSTDIR\" is already exists."
62  usage
63  exit 0
64fi
65
66##
67
[5364]68APT_OPTS="
69    -o Dir::Etc::sourcelist=$INSTDIR/etc/vbootstrap/sources.list.d/$INSTVER
70    -o RPM::RootDir=$INSTDIR
71    -o Dir::Etc::sourceparts=$INSTDIR/etc/apt/sources.list.d
72    -o Dir::State=$INSTDIR/var/lib/apt
73    -o Dir::Cache=$INSTDIR/var/cache/apt "
[118]74
75##
76
[5364]77# generate source.list of $INSTVER
78mkdir -p $INSTDIR/etc/vbootstrap/sources.list.d
79sed -e "s,@@FETCHURL@@,${FETCHURL}," $VBOOTSTRAPDIR/sources.list.d/$INSTVER > $INSTDIR/etc/vbootstrap/sources.list.d/$INSTVER || exit 1
80
[118]81# initialize rpm database
[2522]82echo $"Initializing RPM database in $INSTDIR."
[118]83mkdir -p $INSTDIR/var/lib/rpm
84rpm --initdb --root $INSTDIR
85
86# update apt database
[2522]87echo $"update apt database."
[738]88mkdir -p $INSTDIR/var/lib/apt/lists/partial
89mkdir -p $INSTDIR/var/cache/apt/archives/partial
[118]90apt-get -qq $APT_OPTS update
91
92# misc setup files
93mkdir -p $INSTDIR/etc
94touch $INSTDIR/etc/mtab
95
96# create some device files
97mkdir $INSTDIR/dev
98mknod $INSTDIR/dev/null c 1 3
99mknod $INSTDIR/dev/console c 5 1
100
101# install base vine linux system.
[2522]102echo $"Installing basesystem."
[118]103for i in $BASE_PKGS
104do
105  apt-get -y -qq $APT_OPTS install $i
106done
107
108# run post install script
109vbootstrap_post
110
[3850]111echo $"vbootstrap done."
[118]112
Note: See TracBrowser for help on using the repository browser.