Magellan Linux

Diff of /trunk/mage/usr/lib/mage/mage4.sh

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

revision 418 by niro, Sun Jan 21 23:46:24 2007 UTC revision 2221 by niro, Wed Oct 16 07:40:02 2013 UTC
# Line 1  Line 1 
1  #!/bin/sh  #!/bin/bash
2  # Magellan Linux Installer (mage.sh)  # Magellan Linux Installer (mage.sh)
3  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mage4.sh,v 1.16 2007-01-21 23:46:24 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mage4.sh,v 1.17 2008-06-16 09:29:57 niro Exp $
4    
5  # default die function  # default die function
6  die()  die()
# Line 22  die() Line 22  die()
22   source ${MLIBDIR}/mage4.functions.sh || \   source ${MLIBDIR}/mage4.functions.sh || \
23   die "mage functions missing"   die "mage functions missing"
24    
 ## only for tests -> normally in /etc/rc.d/init.d/functions  
 COLRED="\033[1;6m\033[31m"  
 COLGREEN="\033[1;6m\033[32m"  
 COLYELLOW="\033[1;6m\033[33m"  
 COLBLUE="\033[1;6m\033[34m"  
 COLMAGENTA="\033[1;6m\033[35m"  
 COLWHITE="\033[1;6m\033[37m"  
 COLGRAY="\033[0;6m\033[37m"  
 COLBOLD="\033[1m"  
 COLDEFAULT="\033[0m"  
   
 if [[ ${NOCOLORS} = true ]]  
 then  
  COLRED=""  
  COLGREEN=""  
  COLYELLOW=""  
  COLBLUE=""  
  COLMAGENTA=""  
  COLWHITE=""  
  COLGRAY=""  
  COLBOLD=""  
  COLDEFAULT=""  
 fi  
   
25  # export default path  # export default path
26  export PATH="${PATH}:${MLIBDIR}"  export PATH="${PATH}:${MLIBDIR}"
27    
# Line 55  export LC_ALL=C Line 31  export LC_ALL=C
31  # sanity checks  # sanity checks
32  [ ! -e ${VIRTUALDB_FILE} ] && touch ${VIRTUALDB_FILE}  [ ! -e ${VIRTUALDB_FILE} ] && touch ${VIRTUALDB_FILE}
33    
34  if [ ! -e ${VIRTUALDB_DEFAULTS} ] && [[ $1 != update ]]  if [ ! -e ${VIRTUALDB_DEFAULTS} ] && [[ $1 != update ]] && [[ $1 != update-tarball ]]
35  then  then
36   echo   echo
37   echo "Please choose an profile from the mage tree."   echo "Please choose an profile from the mage tree."
# Line 83  print_usage() Line 59  print_usage()
59   echo "    install         - installs a package"   echo "    install         - installs a package"
60   echo "    srcinstall      - installs a package from source"   echo "    srcinstall      - installs a package from source"
61   echo "    uninstall       - removes a package"   echo "    uninstall       - removes a package"
62   echo "    update          - updates mage-tree"   echo "    update          - updates the mage-tree via rsync"
63     echo "    update-tarball  - updates the mage-tree via a tarball"
64   echo "    uppretend       - pretend dependencies for a system upgrade"   echo "    uppretend       - pretend dependencies for a system upgrade"
65   echo "    upgrade         - runs a complete system upgrade"   echo "    upgrade         - runs a complete system upgrade"
66   echo "    srcuppretend    - pretend dependencies for a system upgrade from source"   echo "    srcuppretend    - pretend dependencies for a system upgrade from source"
67   echo "    srcupgrade      - runs a complete system upgrade from source"   echo "    srcupgrade      - runs a complete system upgrade from source"
68     echo "    pretend-build-prerequisites"
69     echo "    install-build-prerequisites"
70   echo "    search          - searches mage-tree for a package"   echo "    search          - searches mage-tree for a package"
71   echo "    clean           - removes *all* downloaded packages"   echo "    clean           - removes *all* downloaded packages"
72   echo "    unpack          - unpacks *all* needed package for 'foo'"   echo "    unpack          - unpacks *all* needed package for 'foo'"
73   echo "    download        - downloads *all* needed packages for 'foo'"   echo "    download        - downloads *all* needed packages for 'foo'"
74     echo "    print-features  - prints all enabled mage-features"
75   echo "    version         - prints version info"   echo "    version         - prints version info"
76   echo "    regen-mage-tree - regenerates the whole mage database (for devs only)"   echo "    regen-mage-tree - regenerates the whole mage database (for devs only)"
77   echo   echo
# Line 117  echo Line 97  echo
97  # install method  # install method
98  METHOD="$1"  METHOD="$1"
99    
100  # initial unversionized packagename, gets overridden later  # initial unversionized packagename, gets overridden later on
101  MAGENAME="$2"  MAGENAME="$2"
102    
103  if [[ ${METHOD} != upgrade ]] && \  if [[ ${METHOD} != upgrade ]] &&
104   [[ ${METHOD} != srcupgrade ]] && \   [[ ${METHOD} != srcupgrade ]] &&
105   [[ ${METHOD} != uppretend ]] && \   [[ ${METHOD} != uppretend ]] &&
106   [[ ${METHOD} != srcuppretend ]] && \   [[ ${METHOD} != srcuppretend ]] &&
107   [[ ${METHOD} != update ]] && \   [[ ${METHOD} != update ]] &&
108   [[ ${METHOD} != clean ]] && \   [[ ${METHOD} != update-tarball ]] &&
109   [[ ${METHOD} != version ]] && \   [[ ${METHOD} != clean ]] &&
110   [[ ${METHOD} != search ]] && \   [[ ${METHOD} != version ]] &&
111   [[ ${METHOD} != regen-mage-tree ]]   [[ ${METHOD} != search ]] &&
112     [[ ${METHOD} != regen-mage-tree ]] &&
113     [[ ${METHOD} != print-features ]]
114  then  then
115   [[ -z ${METHOD} ]] || [[ -z ${MAGENAME} ]] && print_usage && exit 1   [[ -z ${METHOD} ]] || [[ -z ${MAGENAME} ]] && print_usage && exit 1
116  fi  fi
# Line 143  fi Line 125  fi
125  # before anything run mage_setup  # before anything run mage_setup
126  mage_setup || die "error in mage_setup()"  mage_setup || die "error in mage_setup()"
127    
128    # load supported mage features
129    load_mage_features
130    
131    # query debug mode
132    if mqueryfeature "debug"
133    then
134     depwalker_debug="--debug"
135    else
136     depwalker_debug=""
137    fi
138    
139  case ${METHOD} in  case ${METHOD} in
140   download)   download)
141   # first of all get the right pkg which going to be installed   # first of all get the right pkg which going to be installed
# Line 169  case ${METHOD} in Line 162  case ${METHOD} in
162   --pcat ${PCAT} \   --pcat ${PCAT} \
163   --pname ${PNAME} \   --pname ${PNAME} \
164   --pver ${PVER} \   --pver ${PVER} \
165   --pbuild ${PBUILD})"   --pbuild ${PBUILD} \
166     ${depwalker_debug})"
167   fetch_packages ${ALLDEPS} || die "fetching packages"   fetch_packages ${ALLDEPS} || die "fetching packages"
168   md5sum_packages ${ALLDEPS} || die "md5 sum packages"   md5sum_packages ${ALLDEPS} || die "md5 sum packages"
169   ;;   ;;
# Line 199  case ${METHOD} in Line 193  case ${METHOD} in
193   --pcat ${PCAT} \   --pcat ${PCAT} \
194   --pname ${PNAME} \   --pname ${PNAME} \
195   --pver ${PVER} \   --pver ${PVER} \
196   --pbuild ${PBUILD})"   --pbuild ${PBUILD} \
197     ${depwalker_debug})"
198   fetch_packages ${ALLDEPS} || die "fetching packages"   fetch_packages ${ALLDEPS} || die "fetching packages"
199   ;;   ;;
200    
201   pretend|srcpretend)   pretend|srcpretend|pretend-build-prerequisites)
202   # first of all get the right pkg which going to be installed   # first of all get the right pkg which going to be installed
203   PCAT="$(pname2pcat ${MAGENAME})"   PCAT="$(pname2pcat ${MAGENAME})"
204    
# Line 236  case ${METHOD} in Line 231  case ${METHOD} in
231   --pcat ${PCAT} \   --pcat ${PCAT} \
232   --pname ${PNAME} \   --pname ${PNAME} \
233   --pver ${PVER} \   --pver ${PVER} \
234   --pbuild ${PBUILD}   --pbuild ${PBUILD} \
235     ${depwalker_debug}
236   ;;   ;;
237    
238   install)   install|install-build-prerequisites)
239     have_root_privileges || die "You must be root to run this operation."
240    
241   # first of all get the right pkg which going to be installed   # first of all get the right pkg which going to be installed
242   PCAT="$(pname2pcat ${MAGENAME})"   PCAT="$(pname2pcat ${MAGENAME})"
243    
# Line 272  case ${METHOD} in Line 270  case ${METHOD} in
270   --pcat ${PCAT} \   --pcat ${PCAT} \
271   --pname ${PNAME} \   --pname ${PNAME} \
272   --pver ${PVER} \   --pver ${PVER} \
273   --pbuild ${PBUILD})"   --pbuild ${PBUILD} \
274     ${depwalker_debug})"
275    
276   # first fetch all packages   # first fetch all packages
277   fetch_packages ${ALLDEPS} || die "fetching packages"   fetch_packages ${ALLDEPS} || die "fetching packages"
278   md5sum_packages ${ALLDEPS} || die "md5 sum packages"   md5sum_packages ${ALLDEPS} || die "md5 sum packages"
  unpack_packages ${ALLDEPS} || die "unpacking packages"  
279   install_packages ${ALLDEPS} || die "installing packages"   install_packages ${ALLDEPS} || die "installing packages"
280   ;;   ;;
281    
282   srcinstall)   srcinstall)
283     have_root_privileges || die "You must be root to run this operation."
284    
285   # first of all get the right pkg which going to be installed   # first of all get the right pkg which going to be installed
286   PCAT="$(pname2pcat ${MAGENAME})"   PCAT="$(pname2pcat ${MAGENAME})"
287    
# Line 314  case ${METHOD} in Line 314  case ${METHOD} in
314   --pcat ${PCAT} \   --pcat ${PCAT} \
315   --pname ${PNAME} \   --pname ${PNAME} \
316   --pver ${PVER} \   --pver ${PVER} \
317   --pbuild ${PBUILD})"   --pbuild ${PBUILD} \
318     ${depwalker_debug})"
319    
320   install_packages --src-install ${ALLDEPS} || die "src-installing packages"   install_packages --src-install ${ALLDEPS} || die "src-installing packages"
321   ;;   ;;
322    
323   uninstall)   uninstall)
324   ALLDEPS="$(get_uninstall_candidates --pname ${MAGENAME})"   have_root_privileges || die "You must be root to run this operation."
325   if [ -z "${ALLDEPS}" ]  
326   then   ALLDEPS="$(get_uninstall_candidates --pname ${MAGENAME})"
327   die "No package installed named '${MAGENAME}'."   if [ -z "${ALLDEPS}" ]
328   fi   then
329   uninstall_packages ${ALLDEPS}   die "No package installed named '${MAGENAME}'."
330     fi
331     uninstall_packages ${ALLDEPS}
332   ;;   ;;
333    
334   uppretend|srcuppretend)   uppretend|srcuppretend)
# Line 334  case ${METHOD} in Line 337  case ${METHOD} in
337   --pcat ${METHOD} \   --pcat ${METHOD} \
338   --pname ${METHOD} \   --pname ${METHOD} \
339   --pver ${METHOD} \   --pver ${METHOD} \
340   --pbuild ${METHOD}   --pbuild ${METHOD} \
341     ${depwalker_debug}
342   ;;   ;;
343    
344   upgrade)   upgrade)
345     have_root_privileges || die "You must be root to run this operation."
346    
347   # get all dependencies of *all* installed packages   # get all dependencies of *all* installed packages
348   # fake pcat,pname,pver,pbuild ...   # fake pcat,pname,pver,pbuild ...
349   ALLDEPS="$(${MLIBDIR}/depwalker.sh \   ALLDEPS="$(${MLIBDIR}/depwalker.sh \
# Line 345  case ${METHOD} in Line 351  case ${METHOD} in
351   --pcat ${METHOD} \   --pcat ${METHOD} \
352   --pname ${METHOD} \   --pname ${METHOD} \
353   --pver ${METHOD} \   --pver ${METHOD} \
354   --pbuild ${METHOD})"   --pbuild ${METHOD} \
355     ${depwalker_debug})"
356    
357   # first fetch all packages   # first fetch all packages
358   fetch_packages ${ALLDEPS} || die "fetching packages"   fetch_packages ${ALLDEPS} || die "fetching packages"
359   md5sum_packages ${ALLDEPS} || die "md5 sum packages"   md5sum_packages ${ALLDEPS} || die "md5 sum packages"
  unpack_packages ${ALLDEPS} || die "unpacking packages"  
360   install_packages ${ALLDEPS} || die "installing packages"   install_packages ${ALLDEPS} || die "installing packages"
361   ;;   ;;
362    
363   srcupgrade)   srcupgrade)
364     have_root_privileges || die "You must be root to run this operation."
365    
366   # get all dependencies of *all* installed packages   # get all dependencies of *all* installed packages
367   # fake pcat,pname,pver,pbuild ...   # fake pcat,pname,pver,pbuild ...
368   ALLDEPS="$(${MLIBDIR}/depwalker.sh \   ALLDEPS="$(${MLIBDIR}/depwalker.sh \
# Line 362  case ${METHOD} in Line 370  case ${METHOD} in
370   --pcat ${METHOD} \   --pcat ${METHOD} \
371   --pname ${METHOD} \   --pname ${METHOD} \
372   --pver ${METHOD} \   --pver ${METHOD} \
373   --pbuild ${METHOD})"   --pbuild ${METHOD} \
374     ${depwalker_debug})"
375    
376   install_packages --src-install ${ALLDEPS} || die "src-installing packages"   install_packages --src-install ${ALLDEPS} || die "src-installing packages"
377   ;;   ;;
# Line 372  case ${METHOD} in Line 381  case ${METHOD} in
381   ;;   ;;
382    
383   unpack)   unpack)
384     have_root_privileges || die "You must be root to run this operation."
385    
386   # first of all get the right pkg which going to be installed   # first of all get the right pkg which going to be installed
387   PCAT="$(pname2pcat ${MAGENAME})"   PCAT="$(pname2pcat ${MAGENAME})"
388    
# Line 396  case ${METHOD} in Line 407  case ${METHOD} in
407   --pcat ${PCAT} \   --pcat ${PCAT} \
408   --pname ${PNAME} \   --pname ${PNAME} \
409   --pver ${PVER} \   --pver ${PVER} \
410   --pbuild ${PBUILD})"   --pbuild ${PBUILD} \
411     ${depwalker_debug})"
412    
413   fetch_packages ${ALLDEPS} || die "fetching packages"   fetch_packages ${ALLDEPS} || die "fetching packages"
414   md5sum_packages ${ALLDEPS} || die "md5 sum packages"   md5sum_packages ${ALLDEPS} || die "md5 sum packages"
415   unpack_packages ${ALLDEPS} || die "unpacking packages"   unpack_packages ${ALLDEPS} || die "unpacking packages"
416   ;;   ;;
417    
418   update)   update)
419     have_root_privileges || die "You must be root to run this operation."
420   syncmage   syncmage
421   ;;   ;;
422    
423     update-tarball)
424     have_root_privileges || die "You must be root to run this operation."
425     syncmage_tarball
426     ;;
427    
428   clean)   clean)
429     have_root_privileges || die "You must be root to run this operation."
430   cleanpkg   cleanpkg
431   ;;   ;;
432    
# Line 416  case ${METHOD} in Line 436  case ${METHOD} in
436   ;;   ;;
437    
438   regen-mage-tree)   regen-mage-tree)
439     have_root_privileges || die "You must be root to run this operation."
440    
441   if [ -z "${SMAGESCRIPTSDIR}" ] || [ ! -d "${SMAGESCRIPTSDIR}" ]   if [ -z "${SMAGESCRIPTSDIR}" ] || [ ! -d "${SMAGESCRIPTSDIR}" ]
442   then   then
443   echo "SMAGESCRIPTSDIR not found. Check your mage.rc or check out smage repos."   echo "SMAGESCRIPTSDIR not found. Check your mage.rc or check out smage repos."
# Line 427  case ${METHOD} in Line 449  case ${METHOD} in
449   done   done
450   ;;   ;;
451    
452     print-features)
453     mprintfeatures
454     ;;
455    
456   *)   *)
457   print_usage   print_usage
458   ;;   ;;

Legend:
Removed from v.418  
changed lines
  Added in v.2221