source: projects/vbootstrap/tags/0.0.48/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
Line 
1#!/bin/bash
2
3TEXTDOMAIN=vbootstrap
4TEXTDOMAINDIR=/usr/share/locale
5
6VERSION=@@VBOOTSTRAP_VERSION@@
7
8##
9
10VBOOTSTRAPDIR="/usr/share/vbootstrap"
11SUPPORTED_VERSION="$(ls $VBOOTSTRAPDIR/scripts/)"
12
13##
14
15usage()
16{
17  echo "Usage: vbootstrap <version>_<arch> <url> <targetdir>"
18  echo "  supported <version>_<arch>:"
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
34if ! [ $# -eq 3 ]
35then
36  usage
37  echo "E: You must specify a vine version, location and target."
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
53FETCHURL=$1
54shift
55
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
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 "
74
75##
76
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
81# initialize rpm database
82echo $"Initializing RPM database in $INSTDIR."
83mkdir -p $INSTDIR/var/lib/rpm
84rpm --initdb --root $INSTDIR
85
86# update apt database
87echo $"update apt database."
88mkdir -p $INSTDIR/var/lib/apt/lists/partial
89mkdir -p $INSTDIR/var/cache/apt/archives/partial
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.
102echo $"Installing basesystem."
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
111echo $"vbootstrap done."
112
Note: See TracBrowser for help on using the repository browser.