Magellan Linux

Diff of /trunk/bootstrap/mage-bootstrap.sh.in

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/bootstrap/scripts/mage-bootstrap.sh revision 422 by niro, Mon Jan 22 21:46:31 2007 UTC trunk/bootstrap/mage-bootstrap.sh.in revision 2587 by niro, Thu Feb 6 13:05:57 2014 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2  # $Header: /home/cvsd/magellan-cvs/magellan-src/bootstrap/scripts/mage-bootstrap.sh,v 1.6 2007-01-22 21:46:31 niro Exp $  # $Id$
3    
4  TOOLCHAIN=""  TOOLCHAIN=""
5  BASESYSTEM=""  BASESYSTEM=""
# Line 8  MROOT="" Line 8  MROOT=""
8  ABORT_AFTER_STAGE1=false  ABORT_AFTER_STAGE1=false
9  MY_MAGEDIR=""  MY_MAGEDIR=""
10  MY_PKGDIR=""  MY_PKGDIR=""
11    MAGEUPDATE=true
12    MAGEUPDATETARBALL=false
13    
14  die()  die()
15  {  {
# Line 55  read_magerc() Line 57  read_magerc()
57   local SMAGE2RSYNC   local SMAGE2RSYNC
58    
59   # sanity checks   # sanity checks
60     [ -f /etc/mage.rc.global ] && source /etc/mage.rc.global || \
61     die "get_value_from_magefile: /etc/mage.rc.global not found."
62   [ -f ${magerc} ] && source ${magerc} || \   [ -f ${magerc} ] && source ${magerc} || \
63   die "get_value_from_magefile: ${magerc} not found."   die "get_value_from_magefile: ${magerc} not found."
64   [ -z "${var}" ] && die "get_value_from_magefile: \$var not given."   [ -z "${var}" ] && die "get_value_from_magefile: \$var not given."
# Line 75  add_initrc() Line 79  add_initrc()
79    
80  enter_chroot()  enter_chroot()
81  {  {
82   mount -t proc proc ${MROOT}/proc || die "mount proc"   is_loc_mounted "${MROOT}/proc" || mount -t proc proc ${MROOT}/proc
83   mount -o bind /dev ${MROOT}/dev || die "mount dev"   is_loc_mounted "${MROOT}/sys" || mount -t sysfs sysfs ${MROOT}/sys
84     is_loc_mounted "${MROOT}/dev" || mount -o bind /dev ${MROOT}/dev
85    
86   chroot ${MROOT} /bin/bash -i /.installrc || die "chr00ting"   chroot ${MROOT} /bin/bash -i /.installrc || die "chr00ting"
87    
88   umount ${MROOT}/dev ${MROOT}/proc || die "mount proc/dev"   is_loc_mounted "${MROOT}/dev" && umount ${MROOT}/dev
89     is_loc_mounted "${MROOT}/sys" && umount ${MROOT}/sys
90     is_loc_mounted "${MROOT}/proc" && umount ${MROOT}/proc
91    
92   [ -f ${MROOT}/.installrc ] && rm ${MROOT}/.installrc   [ -f ${MROOT}/.installrc ] && rm ${MROOT}/.installrc
93  }  }
# Line 101  trap_exit() Line 108  trap_exit()
108  {  {
109   is_loc_mounted "${MROOT}/dev" && umount ${MROOT}/dev   is_loc_mounted "${MROOT}/dev" && umount ${MROOT}/dev
110   is_loc_mounted "${MROOT}/proc" && umount ${MROOT}/proc   is_loc_mounted "${MROOT}/proc" && umount ${MROOT}/proc
111     is_loc_mounted "${MROOT}/sys" && umount ${MROOT}/sys
112   is_loc_mounted "${MY_MAGEDIR}" && umount ${MY_MAGEDIR}   is_loc_mounted "${MY_MAGEDIR}" && umount ${MY_MAGEDIR}
113   is_loc_mounted "${MY_PKGDIR}" && umount ${MY_PKGDIR}   is_loc_mounted "${MY_PKGDIR}" && umount ${MY_PKGDIR}
114   echo "bootstrap aborted"   echo "bootstrap aborted"
# Line 113  print_usage() Line 121  print_usage()
121   echo "Usage: $(basename $0) --opt arg ..."   echo "Usage: $(basename $0) --opt arg ..."
122   echo   echo
123   echo "Options:"   echo "Options:"
124   echo " --profile,    -p  --  select a profile (needed)"   echo " --profile,        -p  --  select a profile (needed)"
125   echo " --root,       -r  --  location to new root (needed)"   echo " --root,           -r  --  location to new root (needed)"
126   echo " --magerc,     -m  --  location of mage.rc (needed)"   echo " --magerc,         -m  --  location of mage.rc (needed)"
127   echo   echo
128   echo " --toolchain,  -t  --  select other toolchain than from profile"   echo " --toolchain,      -t  --  select other toolchain than from profile"
129   echo " --basesystem, -b  --  select other basesystem than from profile"   echo " --basesystem,     -b  --  select other basesystem than from profile"
130   echo " --stage1,     -s1 --  if set, abort after stage1 (toolchain)"   echo " --stage1,         -s1 --  if set, abort after stage1 (toolchain)"
131   echo " --help,       -h  --  prints this help"   echo " --update-tarball, -ut --  update via tarball not rsync"
132     echo " --no-update,      -u  --  do not update the mage tree"
133     echo " --help,           -h  --  prints this help"
134   echo   echo
135    
136   exit 1   exit 1
# Line 142  do Line 152  do
152   --root|-r) shift; MROOT="$1" ;;   --root|-r) shift; MROOT="$1" ;;
153   --stage1|-s1) ABORT_AFTER_STAGE1=true ;;   --stage1|-s1) ABORT_AFTER_STAGE1=true ;;
154   --magerc|-m) shift; MAGERC="$1" ;;   --magerc|-m) shift; MAGERC="$1" ;;
155     --update-tarball|-ut) MAGEUPDATETARBALL=true ;;
156     --no-update|-u) MAGEUPDATE=false ;;
157   --help|-h) print_usage ;;   --help|-h) print_usage ;;
158   '') shift;;   '') shift;;
159   *) echo "Unkown option '$1', use --help or -h to get more info."; exit 1 ;;   *) echo "Unkown option '$1', use --help or -h to get more info."; exit 1 ;;
# Line 183  mount -o bind ${MROOT}/${MY_PKGDIR} ${MY Line 195  mount -o bind ${MROOT}/${MY_PKGDIR} ${MY
195  ln -snf ${MY_MAGEDIR}/profiles/${PROFILE} /etc/mage-profile || die "link profile"  ln -snf ${MY_MAGEDIR}/profiles/${PROFILE} /etc/mage-profile || die "link profile"
196    
197  # update mage tree  # update mage tree
198  mage update || die "update mage-tree"  if [[ ${MAGEUPDATE} = true ]]
199    then
200     if [[ ${MAGEUPDATETARBALL} = true ]]
201     then
202     MAGERC="${MAGERC}" mage update-tarball || die "update mage-tree"
203     else
204     MAGERC="${MAGERC}" mage update || die "update mage-tree"
205     fi
206    fi
207    
208  # now get the toolchain and the basesystem layout file  # now get the toolchain and the basesystem layout file
209  # [ -z "${TOOLCHAIN}" ] && TOOLCHAIN="toolchain.defaults"  # [ -z "${TOOLCHAIN}" ] && TOOLCHAIN="toolchain.defaults"
# Line 194  mage update || die "update mage-tree" Line 214  mage update || die "update mage-tree"
214    
215  # this way toolchain and basesystem can be packages;  # this way toolchain and basesystem can be packages;
216  # only if nothing set the layout files from the profile will be taken  # only if nothing set the layout files from the profile will be taken
217  [ -z "${TOOLCHAIN}" ] && TOOLCHAIN="$(< /etc/mage-profile/toolchain.defaults)"  [ -z "${TOOLCHAIN}" ] && TOOLCHAIN="$(< ${MY_MAGEDIR}/profiles/${PROFILE}/toolchain.defaults)"
218  [ -z "${BASESYSTEM}" ] && BASESYSTEM="$(< /etc/mage-profile/basesystem.defaults)"  [ -z "${BASESYSTEM}" ] && BASESYSTEM="$(< ${MY_MAGEDIR}/profiles/${PROFILE}/basesystem.defaults)"
219    
220  # install toolchain  # install toolchain
221  CONFIG_PROTECT="-*" MROOT="${MROOT}" MAGERC="${MAGERC}" mage install ${TOOLCHAIN} || die "toolchain install"  if ! MROOT="${MROOT}" MAGERC="${MAGERC}" magequery -n ${TOOLCHAIN}
222    then
223     CONFIG_PROTECT="-*" MROOT="${MROOT}" MAGERC="${MAGERC}" mage install ${TOOLCHAIN} || die "toolchain install"
224    fi
225    
226  # umount dirs, they are not needed anymore  # umount dirs, they are not needed anymore
227  umount ${MY_MAGEDIR} ${MY_PKGDIR} || die "umount mage/pkgdir"  umount ${MY_MAGEDIR} ${MY_PKGDIR} || die "umount mage/pkgdir"

Legend:
Removed from v.422  
changed lines
  Added in v.2587