Magellan Linux

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

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

revision 437 by niro, Mon Mar 19 18:05:20 2007 UTC revision 675 by niro, Sun Feb 10 12:26:09 2008 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.27 2007-03-19 18:05:20 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mage4.functions.sh,v 1.35 2008-02-10 12:26:09 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 2154  mage_install() Line 2177  mage_install()
2177   echo B:${pbuild}   echo B:${pbuild}
2178   fi   fi
2179    
2180   smage2file=${SMAGESCRIPTSDIR}/${pname}/${pname}-${pver}-${pbuild}.smage2   if [[ -z ${MAGE_TARGETS} ]]
2181     then
2182     smage2file=${SMAGESCRIPTSDIR}/${pname}/${pname}-${pver}-${pbuild}.smage2
2183     else
2184     smage2file=${SMAGESCRIPTSDIR}/${pname/${MAGE_TARGETS}/}/${pname/${MAGE_TARGETS}/}-${pver}-${pbuild}.smage2
2185     fi
2186   if [ -f "${smage2file}" ]   if [ -f "${smage2file}" ]
2187   then   then
2188   echo -e " ${COLBLUE}***${COLDEFAULT} building package from source ... "   echo -e " ${COLBLUE}***${COLDEFAULT} building package from source ... "
# Line 2430  mage_uninstall() Line 2458  mage_uninstall()
2458   echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}"   echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}"
2459   echo -e "${COLRED}${pname}-${pver}-${pbuild}${COLDEFAULT}"   echo -e "${COLRED}${pname}-${pver}-${pbuild}${COLDEFAULT}"
2460    
2461   magefile="${INSTALLDB}/${pcat}/${pname}-${pver}-${pbuild}/${pname}-${pver}-${pbuild}.mage"   magefile="${MROOT}${INSTALLDB}/${pcat}/${pname}-${pver}-${pbuild}/${pname}-${pver}-${pbuild}.mage"
2462   source ${magefile}   source ${magefile}
2463    
2464   ## preremove scripts   ## preremove scripts
# Line 2528  pkgsearch() Line 2556  pkgsearch()
2556   local all_installed   local all_installed
2557   local ipver   local ipver
2558   local ipbuild   local ipbuild
2559     local latest_available
2560     local depsfull
2561     local sdepsfull
2562     local deps
2563     local sdeps
2564     local dep
2565     local sign
2566    
2567   # only names no versions   # only names no versions
2568   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 2580  pkgsearch()
2580   # get highest version available   # get highest version available
2581   magefile=$(get_highest_magefile ${pcat} ${pname})   magefile=$(get_highest_magefile ${pcat} ${pname})
2582    
2583   # now get all needed infos to print a nice output   if [[ ! -z ${magefile} ]]
2584   pver="$(magename2pver ${magefile})"   then
2585   pbuild="$(magename2pbuild ${magefile})"   # now get all needed infos to print a nice output
2586   state="$(get_value_from_magefile STATE ${magefile})"   pver="$(magename2pver ${magefile})"
2587   description="$(get_value_from_magefile DESCRIPTION ${magefile})"   pbuild="$(magename2pbuild ${magefile})"
2588   homepage="$(get_value_from_magefile HOMEPAGE ${magefile})"   state="$(get_value_from_magefile STATE ${magefile})"
2589     description="$(get_value_from_magefile DESCRIPTION ${magefile})"
2590     homepage="$(get_value_from_magefile HOMEPAGE ${magefile})"
2591    
2592     # all installed
2593     for i in $(get_uninstall_candidates --pname ${pname} --pcat ${pcat})
2594     do
2595     ipver="$(magename2pver ${i})"
2596     ipbuild="$(magename2pbuild ${i})"
2597    
2598     if [[ -z ${all_installed} ]]
2599     then
2600     all_installed="${ipver}-${ipbuild}"
2601     else
2602     all_installed="${all_installed} ${ipver}-${ipbuild}"
2603     fi
2604     done
2605     [[ -z ${all_installed} ]] && all_installed="none"
2606    
2607     case ${state} in
2608     stable) state=${COLGREEN}"[s] ";;
2609     testing) state=${COLYELLOW}"[t] ";;
2610     unstable) state=${COLRED}"[u] ";;
2611     old) state=${COLGRAY}"[o] ";;
2612     esac
2613    
2614     latest_available="${pver}-${pbuild}"
2615     else
2616     # package is masked
2617     state="${COLRED}[m] "
2618     latest_available="${COLRED}masked for this distribution.${COLDEFAULT}"
2619     fi
2620    
2621   # all installed   depsfull="$(get_value_from_magefile DEPEND ${magefile})"
2622   for i in $(get_uninstall_candidates --pname ${pname} --pcat ${pcat})   sdepsfull="$(get_value_from_magefile SDEPEND ${magefile})"
  do  
  ipver="$(magename2pver ${i})"  
  ipbuild="$(magename2pbuild ${i})"  
2623    
2624   if [[ -z ${all_installed} ]]   while read sign dep
2625   then   do
2626   all_installed="${ipver}-${ipbuild}"   case ${dep} in
2627   else   "") continue;;
2628   all_installed="${all_installed} ${ipver}-${ipbuild}"   esac
2629   fi  
2630   done   deps="${deps} $(basename ${dep%-*})"
2631   [[ -z ${all_installed} ]] && all_installed="none"   done << EOF
2632    ${depsfull}
2633    EOF
2634    
2635   case ${state} in   while read sign dep
2636   stable) state=${COLGREEN}"[s] ";;   do
2637   testing) state=${COLYELLOW}"[t] ";;   case ${dep} in
2638   unstable) state=${COLRED}"[u] ";;   "") continue;;
2639   old) state=${COLGRAY}"[o] ";;   esac
2640   esac  
2641     sdeps="${sdeps} $(basename ${dep%-*})"
2642     done << EOF
2643    ${sdepsfull}
2644    EOF
2645    
2646   echo -e "${state}${pcat}/${pname}"${COLDEFAULT}   echo -e "${state}${pcat}/${pname}"${COLDEFAULT}
2647   echo "      Latest available:   ${pver}-${pbuild}"   echo -e "      Latest available:   ${latest_available}"
2648   echo "      Installed versions: ${all_installed}"   echo "      Installed versions: ${all_installed}"
2649   echo "      Description: ${description}"   echo "      Description: ${description}"
2650   echo "      Homepage: ${homepage}"   echo "      Homepage: ${homepage}"
2651     echo "      Depends: ${deps}"
2652     echo "      SDepends: ${sdeps}"
2653   echo   echo
2654    
2655   unset pcat   unset pcat
# Line 2592  pkgsearch() Line 2663  pkgsearch()
2663   unset all_installed   unset all_installed
2664   unset ipver   unset ipver
2665   unset ipbuild   unset ipbuild
2666     unset depsfull
2667     unset sdepsfull
2668     unset deps
2669     unset sdeps
2670     unset dep
2671     unset sign
2672   done   done
2673  }  }
2674    

Legend:
Removed from v.437  
changed lines
  Added in v.675