--- trunk/mage/usr/lib/mage/mage4.sh 2010/06/28 17:45:18 1080 +++ trunk/mage/usr/lib/mage/mage4.sh 2013/10/14 13:13:46 2210 @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Magellan Linux Installer (mage.sh) # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mage4.sh,v 1.17 2008-06-16 09:29:57 niro Exp $ @@ -22,30 +22,6 @@ source ${MLIBDIR}/mage4.functions.sh || \ die "mage functions missing" -## 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 - # export default path export PATH="${PATH}:${MLIBDIR}" @@ -89,10 +65,13 @@ echo " upgrade - runs a complete system upgrade" echo " srcuppretend - pretend dependencies for a system upgrade from source" echo " srcupgrade - runs a complete system upgrade from source" + echo " pretend-build-prerequisites" + echo " install-build-prerequisites" echo " search - searches mage-tree for a package" echo " clean - removes *all* downloaded packages" echo " unpack - unpacks *all* needed package for 'foo'" echo " download - downloads *all* needed packages for 'foo'" + echo " print-features - prints all enabled mage-features" echo " version - prints version info" echo " regen-mage-tree - regenerates the whole mage database (for devs only)" echo @@ -118,19 +97,20 @@ # install method METHOD="$1" -# initial unversionized packagename, gets overridden later +# initial unversionized packagename, gets overridden later on MAGENAME="$2" -if [[ ${METHOD} != upgrade ]] && \ - [[ ${METHOD} != srcupgrade ]] && \ - [[ ${METHOD} != uppretend ]] && \ - [[ ${METHOD} != srcuppretend ]] && \ - [[ ${METHOD} != update ]] && \ - [[ ${METHOD} != update-tarball ]] && \ - [[ ${METHOD} != clean ]] && \ - [[ ${METHOD} != version ]] && \ - [[ ${METHOD} != search ]] && \ - [[ ${METHOD} != regen-mage-tree ]] +if [[ ${METHOD} != upgrade ]] && + [[ ${METHOD} != srcupgrade ]] && + [[ ${METHOD} != uppretend ]] && + [[ ${METHOD} != srcuppretend ]] && + [[ ${METHOD} != update ]] && + [[ ${METHOD} != update-tarball ]] && + [[ ${METHOD} != clean ]] && + [[ ${METHOD} != version ]] && + [[ ${METHOD} != search ]] && + [[ ${METHOD} != regen-mage-tree ]] && + [[ ${METHOD} != print-features ]] then [[ -z ${METHOD} ]] || [[ -z ${MAGENAME} ]] && print_usage && exit 1 fi @@ -145,6 +125,9 @@ # before anything run mage_setup mage_setup || die "error in mage_setup()" +# load supported mage features +load_mage_features + case ${METHOD} in download) # first of all get the right pkg which going to be installed @@ -205,7 +188,7 @@ fetch_packages ${ALLDEPS} || die "fetching packages" ;; - pretend|srcpretend) + pretend|srcpretend|pretend-build-prerequisites) # first of all get the right pkg which going to be installed PCAT="$(pname2pcat ${MAGENAME})" @@ -241,7 +224,9 @@ --pbuild ${PBUILD} ;; - install) + install|install-build-prerequisites) + have_root_privileges || die "You must be root to run this operation." + # first of all get the right pkg which going to be installed PCAT="$(pname2pcat ${MAGENAME})" @@ -279,11 +264,12 @@ # first fetch all packages fetch_packages ${ALLDEPS} || die "fetching packages" md5sum_packages ${ALLDEPS} || die "md5 sum packages" - unpack_packages ${ALLDEPS} || die "unpacking packages" install_packages ${ALLDEPS} || die "installing packages" ;; srcinstall) + have_root_privileges || die "You must be root to run this operation." + # first of all get the right pkg which going to be installed PCAT="$(pname2pcat ${MAGENAME})" @@ -322,12 +308,14 @@ ;; uninstall) - ALLDEPS="$(get_uninstall_candidates --pname ${MAGENAME})" - if [ -z "${ALLDEPS}" ] - then - die "No package installed named '${MAGENAME}'." - fi - uninstall_packages ${ALLDEPS} + have_root_privileges || die "You must be root to run this operation." + + ALLDEPS="$(get_uninstall_candidates --pname ${MAGENAME})" + if [ -z "${ALLDEPS}" ] + then + die "No package installed named '${MAGENAME}'." + fi + uninstall_packages ${ALLDEPS} ;; uppretend|srcuppretend) @@ -340,6 +328,8 @@ ;; upgrade) + have_root_privileges || die "You must be root to run this operation." + # get all dependencies of *all* installed packages # fake pcat,pname,pver,pbuild ... ALLDEPS="$(${MLIBDIR}/depwalker.sh \ @@ -352,11 +342,12 @@ # first fetch all packages fetch_packages ${ALLDEPS} || die "fetching packages" md5sum_packages ${ALLDEPS} || die "md5 sum packages" - unpack_packages ${ALLDEPS} || die "unpacking packages" install_packages ${ALLDEPS} || die "installing packages" ;; srcupgrade) + have_root_privileges || die "You must be root to run this operation." + # get all dependencies of *all* installed packages # fake pcat,pname,pver,pbuild ... ALLDEPS="$(${MLIBDIR}/depwalker.sh \ @@ -374,6 +365,8 @@ ;; unpack) + have_root_privileges || die "You must be root to run this operation." + # first of all get the right pkg which going to be installed PCAT="$(pname2pcat ${MAGENAME})" @@ -405,14 +398,17 @@ ;; update) + have_root_privileges || die "You must be root to run this operation." syncmage ;; update-tarball) + have_root_privileges || die "You must be root to run this operation." syncmage_tarball ;; clean) + have_root_privileges || die "You must be root to run this operation." cleanpkg ;; @@ -422,6 +418,8 @@ ;; regen-mage-tree) + have_root_privileges || die "You must be root to run this operation." + if [ -z "${SMAGESCRIPTSDIR}" ] || [ ! -d "${SMAGESCRIPTSDIR}" ] then echo "SMAGESCRIPTSDIR not found. Check your mage.rc or check out smage repos." @@ -433,6 +431,10 @@ done ;; + print-features) + mprintfeatures + ;; + *) print_usage ;;