Magellan Linux

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

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

revision 419 by niro, Mon Jan 22 00:24:14 2007 UTC revision 603 by niro, Mon Nov 5 19:36:36 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.26 2007-01-22 00:24:14 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mage4.functions.sh,v 1.34 2007-11-05 19:34:36 niro Exp $
4    
5  mage_setup()  mage_setup()
6  {  {
# Line 1375  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 1385  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 1394  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 1430  is_config_protected() Line 1430  is_config_protected()
1430  ###################################################  ###################################################
1431  count_protected_files()  count_protected_files()
1432  {  {
1433   ${MLIBDIR}/writeprotected "$1"   local file="$1"
1434     local dirname="${file%/*}"
1435     local filename="${file##*/}"
1436     local count
1437     local output
1438     local i
1439    
1440     declare -i count=0
1441    
1442     # check if there are already protected files
1443     for oldpretected in $(find ${dirname} -iname "._cfg????_${filename}" |
1444     sed -e "s:\(^.*/\)\(._cfg*_\)\(/.*$\):\1\2\3\%\2\%\3:" |
1445     sort -t'%' -k3 -k2 | cut -f1 -d'%')
1446     do
1447     count=$(echo ${oldpretected} | cut -d_ -f2 | sed -e "s:cfg::")
1448     done
1449     (( count ++ ))
1450    
1451     # fill output up with zeros
1452     for (( i=${#count}; i < 4; i++ )); do output="${output}0"; done
1453     output="${output}${count}"
1454    
1455     echo "${output}"
1456  }  }
1457    
1458  # call with  # call with
# Line 1447  get_uninstall_candidates() Line 1469  get_uninstall_candidates()
1469   local list   local list
1470   local pcatdir   local pcatdir
1471   local protected   local protected
1472     local i
1473    
1474   # very basic getops   # very basic getops
1475   for i in $*   for i in $*
# Line 1708  minclude() Line 1731  minclude()
1731  {  {
1732   local i   local i
1733    
1734   if [[ -n $@ ]]   if [[ -n $* ]]
1735   then   then
1736   for i in $@   for i in $*
1737   do   do
1738   [[ ${MAGEDEBUG} = on ]] && \   [[ ${MAGEDEBUG} = on ]] && \
1739   echo "--- Including ${MAGEDIR}/include/${i}.minc"   echo "--- Including ${MAGEDIR}/include/${i}.minc"
# Line 1724  sminclude() Line 1747  sminclude()
1747  {  {
1748   local i   local i
1749    
1750   if [ -n "$@" ]   if [[ -n $* ]]
1751   then   then
1752   for i in $@   for i in $*
1753   do   do
1754   echo "--- Including ${SMAGESCRIPTSDIR}/include/${i}.sminc"   echo "--- Including ${SMAGESCRIPTSDIR}/include/${i}.sminc"
1755   source ${SMAGESCRIPTSDIR}/include/${i}.sminc   source ${SMAGESCRIPTSDIR}/include/${i}.sminc
# Line 2430  mage_uninstall() Line 2453  mage_uninstall()
2453   echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}"   echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}"
2454   echo -e "${COLRED}${pname}-${pver}-${pbuild}${COLDEFAULT}"   echo -e "${COLRED}${pname}-${pver}-${pbuild}${COLDEFAULT}"
2455    
2456   magefile="${INSTALLDB}/${pcat}/${pname}-${pver}-${pbuild}/${pname}-${pver}-${pbuild}.mage"   magefile="${MROOT}${INSTALLDB}/${pcat}/${pname}-${pver}-${pbuild}/${pname}-${pver}-${pbuild}.mage"
2457   source ${magefile}   source ${magefile}
2458    
2459   ## preremove scripts   ## preremove scripts
# Line 2528  pkgsearch() Line 2551  pkgsearch()
2551   local all_installed   local all_installed
2552   local ipver   local ipver
2553   local ipbuild   local ipbuild
2554     local latest_available
2555     local depsfull
2556     local sdepsfull
2557     local deps
2558     local sdeps
2559     local dep
2560     local sign
2561    
2562   # only names no versions   # only names no versions
2563   result="$(find ${MAGEDIR} -mindepth 2 -maxdepth 2 -type d -name '*'${string}'*'| sed '/profiles/d' | sed '/includes/d')"   result="$(find ${MAGEDIR} -mindepth 2 -maxdepth 2 -type d -name '*'${string}'*'| sed '/profiles/d' | sed '/includes/d')"
# Line 2545  pkgsearch() Line 2575  pkgsearch()
2575   # get highest version available   # get highest version available
2576   magefile=$(get_highest_magefile ${pcat} ${pname})   magefile=$(get_highest_magefile ${pcat} ${pname})
2577    
2578   # now get all needed infos to print a nice output   if [[ ! -z ${magefile} ]]
2579   pver="$(magename2pver ${magefile})"   then
2580   pbuild="$(magename2pbuild ${magefile})"   # now get all needed infos to print a nice output
2581   state="$(get_value_from_magefile STATE ${magefile})"   pver="$(magename2pver ${magefile})"
2582   description="$(get_value_from_magefile DESCRIPTION ${magefile})"   pbuild="$(magename2pbuild ${magefile})"
2583   homepage="$(get_value_from_magefile HOMEPAGE ${magefile})"   state="$(get_value_from_magefile STATE ${magefile})"
2584     description="$(get_value_from_magefile DESCRIPTION ${magefile})"
2585     homepage="$(get_value_from_magefile HOMEPAGE ${magefile})"
2586    
2587     # all installed
2588     for i in $(get_uninstall_candidates --pname ${pname} --pcat ${pcat})
2589     do
2590     ipver="$(magename2pver ${i})"
2591     ipbuild="$(magename2pbuild ${i})"
2592    
2593     if [[ -z ${all_installed} ]]
2594     then
2595     all_installed="${ipver}-${ipbuild}"
2596     else
2597     all_installed="${all_installed} ${ipver}-${ipbuild}"
2598     fi
2599     done
2600     [[ -z ${all_installed} ]] && all_installed="none"
2601    
2602     case ${state} in
2603     stable) state=${COLGREEN}"[s] ";;
2604     testing) state=${COLYELLOW}"[t] ";;
2605     unstable) state=${COLRED}"[u] ";;
2606     old) state=${COLGRAY}"[o] ";;
2607     esac
2608    
2609   # all installed   latest_available="${pver}-${pbuild}"
2610   for i in $(get_uninstall_candidates --pname ${pname} --pcat ${pcat})   else
2611   do   # package is masked
2612   ipver="$(magename2pver ${i})"   state="${COLRED}[m] "
2613   ipbuild="$(magename2pbuild ${i})"   latest_available="${COLRED}masked for this distribution.${COLDEFAULT}"
2614     fi
2615    
2616   if [[ -z ${all_installed} ]]   depsfull="$(get_value_from_magefile DEPEND ${magefile})"
2617   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"  
2618    
2619   case ${state} in   while read sign dep
2620   stable) state=${COLGREEN}"[s] ";;   do
2621   testing) state=${COLYELLOW}"[t] ";;   case ${dep} in
2622   unstable) state=${COLRED}"[u] ";;   "") continue;;
2623   old) state=${COLGRAY}"[o] ";;   esac
2624   esac  
2625     deps="${deps} $(basename ${dep%-*})"
2626     done << EOF
2627    ${depsfull}
2628    EOF
2629    
2630     while read sign dep
2631     do
2632     case ${dep} in
2633     "") continue;;
2634     esac
2635    
2636     sdeps="${sdeps} $(basename ${dep%-*})"
2637     done << EOF
2638    ${sdepsfull}
2639    EOF
2640    
2641   echo -e "${state}${pcat}/${pname}"${COLDEFAULT}   echo -e "${state}${pcat}/${pname}"${COLDEFAULT}
2642   echo "      Latest available:   ${pver}-${pbuild}"   echo -e "      Latest available:   ${latest_available}"
2643   echo "      Installed versions: ${all_installed}"   echo "      Installed versions: ${all_installed}"
2644   echo "      Description: ${description}"   echo "      Description: ${description}"
2645   echo "      Homepage: ${homepage}"   echo "      Homepage: ${homepage}"
2646     echo "      Depends: ${deps}"
2647     echo "      SDepends: ${sdeps}"
2648   echo   echo
2649    
2650   unset pcat   unset pcat
# Line 2592  pkgsearch() Line 2658  pkgsearch()
2658   unset all_installed   unset all_installed
2659   unset ipver   unset ipver
2660   unset ipbuild   unset ipbuild
2661     unset depsfull
2662     unset sdepsfull
2663     unset deps
2664     unset sdeps
2665     unset dep
2666     unset sign
2667   done   done
2668  }  }
2669    

Legend:
Removed from v.419  
changed lines
  Added in v.603