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.2 2005-09-10 13:35:55 niro Exp $ |
# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mage4.functions.sh,v 1.6 2005-10-02 14:09:41 niro Exp $ |
4 |
|
|
5 |
mage_setup() |
mage_setup() |
6 |
{ |
{ |
744 |
do |
do |
745 |
[ -z "${pathto}" ] && continue |
[ -z "${pathto}" ] && continue |
746 |
|
|
747 |
if [ -e "${MROOT}${pathto}" ] |
if [ ! -e "${MROOT}${pathto}" ] |
748 |
then |
then |
749 |
[[ ${VERBOSE} = on ]] && \ |
[[ ${VERBOSE} = on ]] && \ |
750 |
echo -e "${COLRED}! exist${COLDEFAULT} === FILE: ${MROOT}${pathto}" |
echo -e "${COLRED}! exist${COLDEFAULT} === FILE: ${MROOT}${pathto}" |
932 |
|
|
933 |
[ ! -f ${MROOT}${INSTALLDB}/${pfull}/.char ] && die "remove_directories() .dirs not found" |
[ ! -f ${MROOT}${INSTALLDB}/${pfull}/.char ] && die "remove_directories() .dirs not found" |
934 |
|
|
|
# uninstall of dirs ## added small hack to fix dirs |
|
|
# must be reverse -> smage2 doesn't sort them |
|
|
# -> using tac |
|
|
|
|
935 |
# sets fieldseperator to "§" instead of " " |
# sets fieldseperator to "§" instead of " " |
936 |
IFS=§ |
IFS=§ |
937 |
|
|
938 |
while read pathto posix |
# reversed order is mandatory ! |
939 |
|
tac ${MROOT}${INSTALLDB}/${pfull}/.dirs | while read pathto posix |
940 |
do |
do |
941 |
[ -z "${pathto}" ] && continue |
[ -z "${pathto}" ] && continue |
942 |
|
|
951 |
if [ -f "${MROOT}${pathto}/.keep" ] |
if [ -f "${MROOT}${pathto}/.keep" ] |
952 |
then |
then |
953 |
[[ ${VERBOSE} = on ]] && \ |
[[ ${VERBOSE} = on ]] && \ |
954 |
echo -e "${COLRED} .keep${COLDEFAULT} === DIR: ${MROOT}${pathto}" |
echo -e "${COLRED}! .keep${COLDEFAULT} === DIR: ${MROOT}${pathto}" |
955 |
continue |
continue |
956 |
fi |
fi |
957 |
|
|
968 |
[[ ${VERBOSE} = on ]] && \ |
[[ ${VERBOSE} = on ]] && \ |
969 |
echo -e "${COLRED}! empty${COLDEFAULT} === DIR: ${MROOT}${pathto}" |
echo -e "${COLRED}! empty${COLDEFAULT} === DIR: ${MROOT}${pathto}" |
970 |
fi |
fi |
971 |
done < ${MROOT}${INSTALLDB}/${pfull}/.dirs |
done |
972 |
|
|
973 |
# very important: unsetting the '§' fieldseperator |
# very important: unsetting the '§' fieldseperator |
974 |
IFS=$'\n' |
IFS=$'\n' |
1667 |
local newest_mage |
local newest_mage |
1668 |
local installed_mage |
local installed_mage |
1669 |
|
|
1670 |
newest_mage="$( CATEGORIE=app-mage MAGENAME=mage get_highest_magefile;echo $(basename ${MAGEFILE} .mage) )" |
newest_mage="$(basename $(get_highest_magefile app-mage mage) .mage)" |
1671 |
installed_mage="$(magequery -n mage | cut -d' ' -f5)" |
installed_mage="$(magequery -n mage | cut -d' ' -f5)" |
1672 |
|
|
1673 |
if [[ ${newest_mage} > ${installed_mage} ]] |
if [[ ${newest_mage} > ${installed_mage} ]] |
1960 |
local PKGTYPE |
local PKGTYPE |
1961 |
local preinstall |
local preinstall |
1962 |
local postinstall |
local postinstall |
1963 |
|
local preremove |
1964 |
|
local postremove |
1965 |
|
|
1966 |
# sanity checks |
# sanity checks |
1967 |
[ -f ${magefile} ] && source ${magefile} || \ |
[ -f ${magefile} ] && source ${magefile} || \ |
1971 |
source ${magefile} |
source ${magefile} |
1972 |
eval value=\$$(echo ${var}) |
eval value=\$$(echo ${var}) |
1973 |
echo "${value}" |
echo "${value}" |
1974 |
|
|
1975 |
|
unset preinstall |
1976 |
|
unset postinstall |
1977 |
|
unset preremove |
1978 |
|
unset postremove |
1979 |
} |
} |
1980 |
|
|
1981 |
mage_install() |
mage_install() |
1992 |
local PKGTYPE |
local PKGTYPE |
1993 |
local preinstall |
local preinstall |
1994 |
local postinstall |
local postinstall |
1995 |
|
local preremove |
1996 |
|
local postremove |
1997 |
|
|
1998 |
local pcat |
local pcat |
1999 |
local pname |
local pname |
2155 |
# echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}" |
# echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}" |
2156 |
# echo -ne "${COLGREEN}${pname}-${pver}-${pbuild}${COLDEFAULT} " |
# echo -ne "${COLGREEN}${pname}-${pver}-${pbuild}${COLDEFAULT} " |
2157 |
echo "successfully installed." |
echo "successfully installed." |
2158 |
|
|
2159 |
|
unset preinstall |
2160 |
|
unset postinstall |
2161 |
|
unset preremove |
2162 |
|
unset postremove |
2163 |
} |
} |
2164 |
|
|
2165 |
md5sum_packages() |
md5sum_packages() |
2264 |
echo -ne "${COLBLUE} --- ${COLDEFAULT}" |
echo -ne "${COLBLUE} --- ${COLDEFAULT}" |
2265 |
echo "following candidate(s) will be removed:" |
echo "following candidate(s) will be removed:" |
2266 |
echo -ne "${COLBLUE} --- ${COLDEFAULT}" |
echo -ne "${COLBLUE} --- ${COLDEFAULT}" |
2267 |
echo -ne "\033[1m${can_pcat}/${can_pname}:${COLDEFAULT}" |
echo -ne "${COLBOLD}${can_pcat}/${can_pname}:${COLDEFAULT}" |
2268 |
echo -e "${COLRED} ${can_ver_list} ${COLDEFAULT}" |
echo -e "${COLRED} ${can_ver_list} ${COLDEFAULT}" |
2269 |
echo |
echo |
2270 |
echo -ne "${COLBLUE} --- ${COLDEFAULT}" |
if [ ${MAGE_UNINSTALL_TIMEOUT} -gt 0 ] |
2271 |
echo "( Press [CTRL+C] to abort )" |
then |
2272 |
echo -ne "${COLBLUE} --- ${COLDEFAULT}" |
echo -ne "${COLBLUE} --- ${COLDEFAULT}" |
2273 |
echo -n "Waiting ${MAGE_UNINSTALL_TIMEOUT} seconds ..." |
echo "( Press [CTRL+C] to abort )" |
2274 |
for ((i=MAGE_UNINSTALL_TIMEOUT; i >= 0; i--)) |
echo -ne "${COLBLUE} --- ${COLDEFAULT}" |
2275 |
do |
echo -n "Waiting ${MAGE_UNINSTALL_TIMEOUT} seconds ..." |
2276 |
echo -ne "${COLRED} ${i}${COLDEFAULT}" |
for ((i=MAGE_UNINSTALL_TIMEOUT; i >= 0; i--)) |
2277 |
sleep 1 |
do |
2278 |
done |
echo -ne "${COLRED} ${i}${COLDEFAULT}" |
2279 |
echo |
sleep 1 |
2280 |
echo |
done |
2281 |
|
echo |
2282 |
|
echo |
2283 |
|
fi |
2284 |
|
|
2285 |
for pkg in ${list} |
for pkg in ${list} |
2286 |
do |
do |
2318 |
local PKGTYPE |
local PKGTYPE |
2319 |
local preinstall |
local preinstall |
2320 |
local postinstall |
local postinstall |
2321 |
|
local preremove |
2322 |
|
local postremove |
2323 |
|
|
2324 |
local pcat |
local pcat |
2325 |
local pname |
local pname |
2357 |
echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}" |
echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}" |
2358 |
echo -e "${COLGREEN}${pname}-${pver}-${pbuild}${COLDEFAULT}" |
echo -e "${COLGREEN}${pname}-${pver}-${pbuild}${COLDEFAULT}" |
2359 |
|
|
2360 |
magefile="${MAGEDIR}/${pcat}/${pname}/${pname}-${pver}-${pbuild}.mage" |
magefile="${INSTALLDB}/${pcat}/${pname}-${pver}-${pbuild}/${pname}-${pver}-${pbuild}.mage" |
2361 |
source ${magefile} |
source ${magefile} |
2362 |
|
|
2363 |
## preremove scripts |
## preremove scripts |
2417 |
# echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}" |
# echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}" |
2418 |
# echo -ne "${COLGREEN}${pname}-${pver}-${pbuild}${COLDEFAULT} " |
# echo -ne "${COLGREEN}${pname}-${pver}-${pbuild}${COLDEFAULT} " |
2419 |
echo "successfully removed." |
echo "successfully removed." |
2420 |
|
|
2421 |
|
unset preinstall |
2422 |
|
unset postinstall |
2423 |
|
unset preremove |
2424 |
|
unset postremove |
2425 |
} |
} |
2426 |
|
|
2427 |
show_etc_update_mesg() { |
show_etc_update_mesg() { |
2520 |
unset ipbuild |
unset ipbuild |
2521 |
done |
done |
2522 |
} |
} |
2523 |
|
|
2524 |
|
export_inherits() |
2525 |
|
{ |
2526 |
|
local include="$1" |
2527 |
|
shift |
2528 |
|
|
2529 |
|
while [ "$1" ] |
2530 |
|
do |
2531 |
|
local functions="$1" |
2532 |
|
|
2533 |
|
# sanity checks |
2534 |
|
[ -z "${include}" ] && die "export_inherits(): \$include not given." |
2535 |
|
[ -z "${functions}" ] && die "export_inherits(): \$functions not given." |
2536 |
|
|
2537 |
|
eval "${functions}() { ${include}_${functions} ; }" |
2538 |
|
|
2539 |
|
# debug |
2540 |
|
[[ ${MAGEDEBUG} = on ]] && typeset -f "${functions}" |
2541 |
|
|
2542 |
|
shift |
2543 |
|
done |
2544 |
|
} |