On 17:07 Tue 04 Dec     , Jim Ramsay (lack) wrote:
> Revision  Changes    Path
> 1.1                  eclass/rox-0install.eclass
> 
> file : 
> http://sources.gentoo.org/viewcvs.py/gentoo-x86/eclass/rox-0install.eclass?rev=1.1&view=markup
> plain: 
> http://sources.gentoo.org/viewcvs.py/gentoo-x86/eclass/rox-0install.eclass?rev=1.1&content-type=text/plain

I don't remember this going by gentoo-dev. Always send eclasses to 
gentoo-dev before committing them.

> Index: rox-0install.eclass
> ===================================================================
> # Copyright 1999-2004 Gentoo Foundation
> # Distributed under the terms of the GNU General Public License v2
> # $Header: /var/cvsroot/gentoo-x86/eclass/rox-0install.eclass,v 1.1 
> 2007/12/04 17:07:52 lack Exp $
> 
> # ROX-0install eclass Version 1
> 
> # Created by Jim Ramsay ([EMAIL PROTECTED]) to ease installation of ROX 
> desktop
> # applications and integrate this with zeroinstall-injector
> # (http://0install.net)
> 
> # These variables are only used inside functions, and so may be set anywhere 
> in
> # the ebuild:
> #
> # ZEROINSTALL_STRIP_REQUIRES - this flag, if set, will force the local
> #    zeroinstall feed to have all its 'requires' directives stripped out
> # LOCAL_FEED_SRC - The ebuild-supplied native feed, for those packages which 
> do
> #    not already contain one.  By default we check for ${APPNAME}.xml and
> #    ${APPNAME}/${APPNAME}.xml
> 
> # This is an extension of rox.eclass
> inherit rox
> 
> DEPEND="${DEPEND}
>       rox-base/zeroinstall-injector"
> 
> # Some locations for ZEROINSTALL
> NATIVE_FEED_DIR="/usr/share/0install.net/native_feeds"
> ICON_CACHE_DIR="/var/cache/0install.net/interface_icons"
> 
> # Does all the 0install local feed magic you could want:
> #   - Parses the input file to get the interface URI
> #   - Edits the input file and installs it to the final location
> #   - Installs a local feed pointer
> #
> # Environment variables:
> #  ZEROINSTALL_STRIP_REQUIRES - If set, strips all 'requires' sections from 
> the XML
> #                            on editing.  Default: Not set
> #
> # 0install_native_feed <src> <destpath>
> #  src   - The XML file we will edit, install, and point at
> #  path  - The path where the implementation will be installed 
> #          IE, the final edited xml will be at <path>/<basename of src>
> 0install_native_feed() {
>       local src="${1}"; shift
>       local path="${1}"; shift

This is a rather strange paradigm to me, instead of:

local src=$1 path=$2
shift 2

>       local feedfile=$(basename "${src}")

You could do this in pure bash, although it doesn't really matter:

local feedfile=${src##*/}

>       local dest="${path}/$feedfile"

How do you decide when not to use braces { } around variables?

>       0distutils "${src}" > tmp.native_feed || die "0distutils feed edit 
> failed"
> 
>       if [[ ${ZEROINSTALL_STRIP_REQUIRES} ]]; then
>               # Strip out all 'requires' sections
>               sed -i -e '/<requires.*\/>/d' \
>                       -e '/<requires.*\>/,/<\/requires>/d' tmp.native_feed

What happens if the contents of a <requires> section are on a separate 
line? Is this a concern?

>       fi
> 
>       (
>               insinto ${path}
>               newins tmp.native_feed ${feedfile}
>       )
> 
>       local feedname

You could just declare feedname local and set it in the same line.

>       feedname=$(0distutils -e "${src}") || "0distutils URI escape failed"

What's the || doing? You've got a string sitting there. Is 'die' 
missing?

>       dosym "${dest}" "${NATIVE_FEED_DIR}/${feedname}"
> 
>       local cachedname
>       cachedname=$(0distutils -c "${src}") || "0distutils URI escape failed"

Same questions.

>       dosym "${path}/.DirIcon" "${ICON_CACHE_DIR}/${cachedname}"
> }
> 
> # Exported functions
> rox-0install_src_install() {
>       # First do the regular Rox install
>       rox_src_install
> 
>       # Now search for the feed, and install it if found.
>       local search_list="${LOCAL_FEED_SRC} ${APPNAME}/${APPNAME}.xml 
> ${APPNAME}.xml"
>       local installed=false
>       for feed in ${search_list}; do
>               if [[ -f "${feed}" ]]; then
>                       0install_native_feed "${feed}" "${APPDIR}/${APPNAME}"
>                       installed=true
>                       break
>               fi
>       done
> 
>       if ! $installed; then

This is kind of a weird way to do it. I'd check instead for
[[ -n ${installed} ]] and initialize it to empty.

>               ewarn "No native feed found - This application will not be 
> found by 0launch."
>       fi
> }
> 
> EXPORT_FUNCTIONS src_install

Thanks,
Donnie
-- 
[EMAIL PROTECTED] mailing list

Reply via email to