# $Id$ provide mage help_mage_update() { mecho "set mage.update [rsync|tarball]" mecho " fetches updates of the package database." } set_mage_update() { local method case $1 in tarball) method="update-tarball" ;; rsync) method="update" ;; *) method="update" ;; esac mage "${method}" && mecho "done" || mecho "failed" } get_mage_upgrade() { mage uppretend && mecho "done" || mecho "failed" } help_mage_upgrade() { mecho "get mage.upgrade" mecho " shows possible updates missing on this system." mecho "or" mecho "set mage.upgrade" mecho " upgrades the whole system." } set_mage_upgrade() { mage upgrade && mecho "done" || mecho "failed" } help_mage_package() { mecho "set mage.package [method] [package]" mecho " package install operations on this system" mecho " methods:" mecho " install - installs given package" mecho " uninstall - uninstalls given package" mecho "or" mecho "get mage.package [method] [package]" mecho " package information operations" mecho " methods:" mecho " pretend - pretend dependencies of given package" mecho " search - searches the database for matching packages" } set_mage_package() { local method="${CLASS_ARGV[0]}" local package="${CLASS_ARGV[1]}" [[ -z ${method} ]] && help_mage_package && return 1 [[ -z ${package} ]] && help_mage_package && return 1 case ${method} in install|uninstall) mage "${method}" "${package}" && mecho "done" || mecho "failed" ;; *) help_mage_package && return 1 ;; esac } get_mage_package() { local method="${CLASS_ARGV[0]}" local package="${CLASS_ARGV[1]}" [[ -z ${method} ]] && help_mage_package && return 1 [[ -z ${package} ]] && help_mage_package && return 1 case ${method} in pretend|search) mage "${method}" "${package}" && mecho "done" || mecho "failed" ;; *) help_mage_package && return 1 ;; esac } help_mage_clean() { mecho "set mage.clean" mecho " deletes all downloaded packages from the system" } set_mage_clean() { mage clean && mecho "done" || mecho "failed" } help_mage_query() { mecho "get mage.query [method] [arguments]" mecho " queries the mage install database for packages and files" mecho " methods:" mecho " package - search an installed package" mecho " get mage.query package [name]" mecho " get mage.query package [name] [version]" mecho " get mage.query package [name] [version] [build]" mecho " category - search for all packages of a category" mecho " get mage.query category [category]" mecho " inventory - prints the whole inventory of all installed packages" mecho " file - searches for a package which owns file name" mecho " get mage.query file [filename]" mecho " path - search for a package which owns an exact path to a file" mecho " get mage.query path [path_to_file]" } get_mage_query() { local method="${CLASS_ARGV[0]}" local value="${CLASS_ARGV[1]}" local pname local pver local pbuild local cmd local retval cmd="magequery" case "${method}" in package) pname="${CLASS_ARGV[1]}" pver="${CLASS_ARGV[2]}" pbuild="${CLASS_ARGV[3]}" if [[ -z ${pname} ]] then echo "at least a package name must be given with method package" return 1 else cmd+=" -n ${pname}" fi [[ -n ${pver} ]] && cmd+=" -v ${pver}" [[ -n ${pbuild} ]] && cmd+=" -b ${pbuild}" ;; category) if [[ -z ${value} ]] then eecho "a category name must be given with method category" return 1 else cmd+="-c ${value}" fi ;; inventory) cmd+="-i" ;; file) if [[ -z ${value} ]] then eecho "a filename must be given with method file" return 1 else cmd+="-f ${file}" fi ;; path) if [[ -z ${value} ]] then eecho "a path must be given with method path" return 1 else cmd+="-e ${path}" fi ;; *) eecho "Unknown method '${method}'" return 1 ;; esac retval="$(${cmd})" if [[ $? = 0 ]] then rvecho "${retval}" fi }