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

Revision 6962, 2.1 KB checked in by daisuke, 12 years ago (diff)

avoid NOKEY warning in vbootstrap
bump version to 0.1

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
[6874]73    -o Dir::Cache=$INSTDIR/var/cache/apt
74    -o RPM::PM=\"external\"
[6962]75    -o RPM::Install-Options::=--force
76    -o RPM::Install-Options::=--nosignature "
[118]77
78##
79
[5364]80# generate source.list of $INSTVER
81mkdir -p $INSTDIR/etc/vbootstrap/sources.list.d
82sed -e "s,@@FETCHURL@@,${FETCHURL}," $VBOOTSTRAPDIR/sources.list.d/$INSTVER > $INSTDIR/etc/vbootstrap/sources.list.d/$INSTVER || exit 1
83
[118]84# initialize rpm database
[2522]85echo $"Initializing RPM database in $INSTDIR."
[118]86mkdir -p $INSTDIR/var/lib/rpm
87rpm --initdb --root $INSTDIR
88
89# update apt database
[2522]90echo $"update apt database."
[738]91mkdir -p $INSTDIR/var/lib/apt/lists/partial
92mkdir -p $INSTDIR/var/cache/apt/archives/partial
[118]93apt-get -qq $APT_OPTS update
94
95# misc setup files
96mkdir -p $INSTDIR/etc
97touch $INSTDIR/etc/mtab
98
99# create some device files
100mkdir $INSTDIR/dev
101mknod $INSTDIR/dev/null c 1 3
102mknod $INSTDIR/dev/console c 5 1
103
104# install base vine linux system.
[2522]105echo $"Installing basesystem."
[118]106for i in $BASE_PKGS
107do
108  apt-get -y -qq $APT_OPTS install $i
109done
110
111# run post install script
112vbootstrap_post
113
[3850]114echo $"vbootstrap done."
[118]115
Note: See TracBrowser for help on using the repository browser.