Magellan Linux

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

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

revision 370 by niro, Thu Apr 27 11:52:59 2006 UTC revision 499 by niro, Sat Jun 30 15:31:46 2007 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2  # Magellan Linux Installer Functions (mage.functions.sh)  # Magellan Linux Installer Functions (mage.functions.sh)
3  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mage4.functions.sh,v 1.18 2006-04-27 11:52:53 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mage4.functions.sh,v 1.32 2007-06-30 15:31:46 niro Exp $
4    
5  mage_setup()  mage_setup()
6  {  {
# Line 1106  fetch_packages() Line 1106  fetch_packages()
1106   local count_current   local count_current
1107   local count_total   local count_total
1108    
1109   [ -z "${MIRRORS}" ] && die "You have no mirrors defined. Please edit your /etc/mage.rc."   [ -z "${MIRRORS}" ] && die "You have no mirrors defined. Please edit your ${MAGERC}."
1110    
1111   # get count of total packages   # get count of total packages
1112   declare -i count_current=0   declare -i count_current=0
# Line 1181  syncmage() Line 1181  syncmage()
1181  {  {
1182   if [ -z "${RSYNC}" ]   if [ -z "${RSYNC}" ]
1183   then   then
1184   die "You have no rsync-mirrors defined. Please edit your /etc/mage.rc."   die "You have no rsync-mirrors defined. Please edit your ${MAGERC}."
1185   fi   fi
1186    
1187   local i   local i
1188   for i in ${RSYNC}   for i in ${RSYNC}
1189   do   do
1190   rsync \   rsync ${RSYNC_FETCH_OPTIONS} ${i} ${MAGEDIR}
  --recursive \  
  --links \  
  --perms \  
  --times \  
  --devices \  
  --timeout=600 \  
  --verbose \  
  --compress \  
  --progress \  
  --stats \  
  --delete \  
  --delete-after \  
  ${i} ${MAGEDIR}  
1191   if [[ $? = 0 ]]   if [[ $? = 0 ]]
1192   then   then
1193   break   break
# Line 1253  choppkgname() Line 1240  choppkgname()
1240   if [ -n "$(echo ${MAGENAME}|fgrep .mage)" ]   if [ -n "$(echo ${MAGENAME}|fgrep .mage)" ]
1241   then   then
1242   #cuts ARCH and PBUILD   #cuts ARCH and PBUILD
1243   #ARCH comes from /etc/mage.rc   #ARCH comes from ${MAGERC}
1244   MAGENAME=$(echo ${MAGENAME} |sed -e "s:-${ARCH}-r*.::g")   MAGENAME=$(echo ${MAGENAME} |sed -e "s:-${ARCH}-r*.::g")
1245    
1246   #cuts version number   #cuts version number
# Line 1388  is_config_protected() Line 1375  is_config_protected()
1375   EXPFILE="${MROOT}$1"   EXPFILE="${MROOT}$1"
1376    
1377   # file does not exist; it can be written   # file does not exist; it can be written
1378   [ ! -e ${EXPFILE} ] && return 0   [[ ! -e ${EXPFILE} ]] && return 0
1379    
1380   # to be safe; it may be '§'   # to be safe; it may be '§'
1381   IFS=' '   IFS=' '
# Line 1398  is_config_protected() Line 1385  is_config_protected()
1385   do   do
1386   # ersetzen von $i nur wenn am anfang der variable   # ersetzen von $i nur wenn am anfang der variable
1387   TEST="${EXPFILE/#${MROOT}${i}/Protected}"   TEST="${EXPFILE/#${MROOT}${i}/Protected}"
1388   if [ "${TEST}" != "${EXPFILE}" ]   if [[ ${TEST} != ${EXPFILE} ]]
1389   then   then
1390   # setzen das es protected ist   # setzen das es protected ist
1391   PROTECTED=TRUE   PROTECTED=TRUE
# Line 1407  is_config_protected() Line 1394  is_config_protected()
1394   for x in ${CONFIG_PROTECT_MASK}   for x in ${CONFIG_PROTECT_MASK}
1395   do   do
1396   TEST="${EXPFILE/#${MROOT}${x}/Protect_Masked}"   TEST="${EXPFILE/#${MROOT}${x}/Protect_Masked}"
1397   if [ "${TEST}" != "${EXPFILE}" ]   if [[ ${TEST} != ${EXPFILE} ]]
1398   then   then
1399   PROTECTED=MASKED   PROTECTED=MASKED
1400   fi   fi
# Line 1460  get_uninstall_candidates() Line 1447  get_uninstall_candidates()
1447   local list   local list
1448   local pcatdir   local pcatdir
1449   local protected   local protected
1450     local i
1451    
1452   # very basic getops   # very basic getops
1453   for i in $*   for i in $*
# Line 1721  minclude() Line 1709  minclude()
1709  {  {
1710   local i   local i
1711    
1712   if [ -n "$@" ]   if [[ -n $* ]]
1713   then   then
1714   for i in $@   for i in $*
1715   do   do
1716   [[ ${MAGEDEBUG} = on ]] && \   [[ ${MAGEDEBUG} = on ]] && \
1717   echo "--- Including ${MAGEDIR}/include/${i}.minc"   echo "--- Including ${MAGEDIR}/include/${i}.minc"
# Line 1737  sminclude() Line 1725  sminclude()
1725  {  {
1726   local i   local i
1727    
1728   if [ -n "$@" ]   if [[ -n $* ]]
1729   then   then
1730   for i in $@   for i in $*
1731   do   do
1732   echo "--- Including ${SMAGESCRIPTSDIR}/include/${i}.sminc"   echo "--- Including ${SMAGESCRIPTSDIR}/include/${i}.sminc"
1733   source ${SMAGESCRIPTSDIR}/include/${i}.sminc   source ${SMAGESCRIPTSDIR}/include/${i}.sminc
# Line 1763  is_newer_mage_version_available() Line 1751  is_newer_mage_version_available()
1751   echo -en ${COLRED}"An update for your packetmanager is available. "${COLDEFAULT}   echo -en ${COLRED}"An update for your packetmanager is available. "${COLDEFAULT}
1752   echo -e ${COLBLUE}"[ ${newest_mage} ]"${COLDEFAULT}   echo -e ${COLBLUE}"[ ${newest_mage} ]"${COLDEFAULT}
1753   echo "It is recommened to install this newer version"   echo "It is recommened to install this newer version"
1754   echo "or your current system installation may brake."   echo "or your current system installation may break."
1755   echo   echo
1756   echo -en "Please update mage by running "   echo -en "Please update mage by running "
1757   echo -e ${COLGREEN}"'mage install mage'"${COLDEFAULT}   echo -e ${COLGREEN}"'mage install mage'"${COLDEFAULT}
# Line 2170  mage_install() Line 2158  mage_install()
2158   smage2file=${SMAGESCRIPTSDIR}/${pname}/${pname}-${pver}-${pbuild}.smage2   smage2file=${SMAGESCRIPTSDIR}/${pname}/${pname}-${pver}-${pbuild}.smage2
2159   if [ -f "${smage2file}" ]   if [ -f "${smage2file}" ]
2160   then   then
2161     echo -e " ${COLBLUE}***${COLDEFAULT} building package from source ... "
2162   smage2 ${smage2file} || die "compile failed"   smage2 ${smage2file} || die "compile failed"
2163   else   else
2164   echo   echo
# Line 2183  mage_install() Line 2172  mage_install()
2172   if [[ ${PKGTYPE} != virtual ]] && \   if [[ ${PKGTYPE} != virtual ]] && \
2173   [[ ${PKGTYPE} != sources ]]   [[ ${PKGTYPE} != sources ]]
2174   then   then
2175   # show a verbose message on src-install   echo -e " ${COLBLUE}***${COLDEFAULT} merging files into system ... "
  if [[ ${src_install} = true ]]  
  then  
  echo -ne "${COLBLUE} *** ${COLDEFAULT}"  
  echo -ne "merging files: "  
  echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}"  
  echo -e "${COLGREEN}${pname}-${pver}-${pbuild}${COLDEFAULT}"  
  fi  
2176   build_doinstall ${PKGNAME}   build_doinstall ${PKGNAME}
2177   fi   fi
2178    
# Line 2358  uninstall_packages() Line 2340  uninstall_packages()
2340   echo -ne "${COLBLUE} --- ${COLDEFAULT}"   echo -ne "${COLBLUE} --- ${COLDEFAULT}"
2341   echo -ne "${COLBOLD}${can_pcat}/${can_pname}:${COLDEFAULT}"   echo -ne "${COLBOLD}${can_pcat}/${can_pname}:${COLDEFAULT}"
2342   echo -e "${COLRED} ${can_ver_list} ${COLDEFAULT}"   echo -e "${COLRED} ${can_ver_list} ${COLDEFAULT}"
2343   echo   echo        [04] app-emulation/virtualbox-1.4.0-r3
2344   if [ ${MAGE_UNINSTALL_TIMEOUT} -gt 0 ]   if [ ${MAGE_UNINSTALL_TIMEOUT} -gt 0 ]
2345   then   then
2346   echo -ne "${COLBLUE} --- ${COLDEFAULT}"   echo -ne "${COLBLUE} --- ${COLDEFAULT}"
# Line 2424  mage_uninstall() Line 2406  mage_uninstall()
2406   for i in $*   for i in $*
2407   do   do
2408   case $1 in   case $1 in
2409   --pcat|-c) shift; pcat="$1" ;;   --pcat|-c) shift; pcat="$1" ;;        [04] app-emulation/virtualbox-1.4.0-r3
2410   --pname|-n) shift; pname="$1" ;;   --pname|-n) shift; pname="$1" ;;
2411   --pver|-v) shift; pver="$1" ;;   --pver|-v) shift; pver="$1" ;;
2412   --pbuild|-b) shift; pbuild="$1" ;;   --pbuild|-b) shift; pbuild="$1" ;;        [04] app-emulation/virtualbox-1.4.0-r3
2413   esac   esac
2414   shift   shift
2415   done   done        [04] app-emulation/virtualbox-1.4.0-r3
2416    
2417   # sanity checks; abort if not given   # sanity checks; abort if not given
2418   [ -z "${pcat}" ] && die "mage_uninstall() \$pcat not given."   [ -z "${pcat}" ] && die "mage_uninstall() \$pcat not given."        [04] app-emulation/virtualbox-1.4.0-r3
2419   [ -z "${pname}" ] && die "mage_uninstall() \$pname not given."   [ -z "${pname}" ] && die "mage_uninstall() \$pname not given."
2420   [ -z "${pver}" ] && die "mage_uninstall() \$pver not given."   [ -z "${pver}" ] && die "mage_uninstall() \$pver not given."
2421   [ -z "${pbuild}" ] && die "mage_uninstall() \$pbuild not given."   [ -z "${pbuild}" ] && die "mage_uninstall() \$pbuild not given."        [04] app-emulation/virtualbox-1.4.0-r3
2422    
2423   # check needed global vars   # check needed global vars
2424   [ -z "${MAGEDIR}" ] && die "mage_uninstall() \$MAGEDIR not set."   [ -z "${MAGEDIR}" ] && die "mage_uninstall() \$MAGEDIR not set."
# Line 2447  mage_uninstall() Line 2429  mage_uninstall()
2429   echo -ne "${COLBLUE} <<< ${COLDEFAULT}"   echo -ne "${COLBLUE} <<< ${COLDEFAULT}"
2430   echo -n "removing: "   echo -n "removing: "
2431   echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}"   echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}"
2432   echo -e "${COLGREEN}${pname}-${pver}-${pbuild}${COLDEFAULT}"   echo -e "${COLRED}${pname}-${pver}-${pbuild}${COLDEFAULT}"
2433    
2434   magefile="${INSTALLDB}/${pcat}/${pname}-${pver}-${pbuild}/${pname}-${pver}-${pbuild}.mage"   magefile="${MROOT}${INSTALLDB}/${pcat}/${pname}-${pver}-${pbuild}/${pname}-${pver}-${pbuild}.mage"
2435   source ${magefile}   source ${magefile}
2436    
2437   ## preremove scripts   ## preremove scripts
# Line 2547  pkgsearch() Line 2529  pkgsearch()
2529   local all_installed   local all_installed
2530   local ipver   local ipver
2531   local ipbuild   local ipbuild
2532     local latest_available
2533     local depsfull
2534     local sdepsfull
2535     local deps
2536     local sdeps
2537     local dep
2538     local sign
2539    
2540   # only names no versions   # only names no versions
2541   result="$(find ${MAGEDIR} -mindepth 2 -maxdepth 2 -type d -name '*'${string}'*')"   result="$(find ${MAGEDIR} -mindepth 2 -maxdepth 2 -type d -name '*'${string}'*'| sed '/profiles/d' | sed '/includes/d')"
2542   #result="$(find ${MAGEDIR} -type f -name '*'${string}'*'.mage | sort)"   #result="$(find ${MAGEDIR} -type f -name '*'${string}'*'.mage | sort)"
2543    
2544   # nothing found   # nothing found
# Line 2564  pkgsearch() Line 2553  pkgsearch()
2553   # get highest version available   # get highest version available
2554   magefile=$(get_highest_magefile ${pcat} ${pname})   magefile=$(get_highest_magefile ${pcat} ${pname})
2555    
2556   # now get all needed infos to print a nice output   if [[ ! -z ${magefile} ]]
2557   pver="$(magename2pver ${magefile})"   then
2558   pbuild="$(magename2pbuild ${magefile})"   # now get all needed infos to print a nice output
2559   state="$(get_value_from_magefile STATE ${magefile})"   pver="$(magename2pver ${magefile})"
2560   description="$(get_value_from_magefile DESCRIPTION ${magefile})"   pbuild="$(magename2pbuild ${magefile})"
2561   homepage="$(get_value_from_magefile HOMEPAGE ${magefile})"   state="$(get_value_from_magefile STATE ${magefile})"
2562     description="$(get_value_from_magefile DESCRIPTION ${magefile})"
2563     homepage="$(get_value_from_magefile HOMEPAGE ${magefile})"
2564    
2565     # all installed
2566     for i in $(get_uninstall_candidates --pname ${pname} --pcat ${pcat})
2567     do
2568     ipver="$(magename2pver ${i})"
2569     ipbuild="$(magename2pbuild ${i})"
2570    
2571     if [[ -z ${all_installed} ]]
2572     then
2573     all_installed="${ipver}-${ipbuild}"
2574     else
2575     all_installed="${all_installed} ${ipver}-${ipbuild}"
2576     fi
2577     done
2578     [[ -z ${all_installed} ]] && all_installed="none"
2579    
2580     case ${state} in
2581     stable) state=${COLGREEN}"[s] ";;
2582     testing) state=${COLYELLOW}"[t] ";;
2583     unstable) state=${COLRED}"[u] ";;
2584     old) state=${COLGRAY}"[o] ";;
2585     esac
2586    
2587   # all installed   latest_available="${pver}-${pbuild}"
2588   for i in $(get_uninstall_candidates --pname ${pname} --pcat ${pcat})   else
2589   do   # package is masked
2590   ipver="$(magename2pver ${i})"   state="${COLRED}[m] "
2591   ipbuild="$(magename2pbuild ${i})"   latest_available="${COLRED}masked for this distribution.${COLDEFAULT}"
2592     fi
2593    
2594   if [[ -z ${all_installed} ]]   depsfull="$(get_value_from_magefile DEPEND ${magefile})"
2595   then   sdepsfull="$(get_value_from_magefile SDEPEND ${magefile})"
  all_installed="${ipver}-${ipbuild}"  
  else  
  all_installed="${all_installed} ${ipver}-${ipbuild}"  
  fi  
  done  
  [[ -z ${all_installed} ]] && all_installed="none"  
2596    
2597   case ${state} in   while read sign dep
2598   stable) state=${COLGREEN}"[s] ";;   do
2599   testing) state=${COLYELLOW}"[t] ";;   case ${dep} in
2600   unstable) state=${COLRED}"[u] ";;   "") continue;;
2601   old) state=${COLGRAY}"[o] ";;   esac
2602   esac  
2603     deps="${deps} $(basename ${dep%-*})"
2604     done << EOF
2605    ${depsfull}
2606    EOF
2607    
2608     while read sign dep
2609     do
2610     case ${dep} in
2611     "") continue;;
2612     esac
2613    
2614     sdeps="${sdeps} $(basename ${dep%-*})"
2615     done << EOF
2616    ${sdepsfull}
2617    EOF
2618    
2619   echo -e "${state}${pcat}/${pname}"${COLDEFAULT}   echo -e "${state}${pcat}/${pname}"${COLDEFAULT}
2620   echo "      Latest available:   ${pver}-${pbuild}"   echo -e "      Latest available:   ${latest_available}"
2621   echo "      Installed versions: ${all_installed}"   echo "      Installed versions: ${all_installed}"
2622   echo "      Description: ${description}"   echo "      Description: ${description}"
2623   echo "      Homepage: ${homepage}"   echo "      Homepage: ${homepage}"
2624     echo "      Depends: ${deps}"
2625     echo "      SDepends: ${sdeps}"
2626   echo   echo
2627    
2628   unset pcat   unset pcat
# Line 2611  pkgsearch() Line 2636  pkgsearch()
2636   unset all_installed   unset all_installed
2637   unset ipver   unset ipver
2638   unset ipbuild   unset ipbuild
2639     unset depsfull
2640     unset sdepsfull
2641     unset deps
2642     unset sdeps
2643     unset dep
2644     unset sign
2645   done   done
2646  }  }
2647    

Legend:
Removed from v.370  
changed lines
  Added in v.499