/[gentoo-x86]/eclass/eutils.eclass
Gentoo

Diff of /eclass/eutils.eclass

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

Revision 1.329 Revision 1.332
1# Copyright 1999-2009 Gentoo Foundation 1# Copyright 1999-2009 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.329 2010/01/28 22:00:12 betelgeuse Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.332 2010/02/17 02:22:43 reavertm Exp $
4 4
5# @ECLASS: eutils.eclass 5# @ECLASS: eutils.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# base-system@gentoo.org 7# base-system@gentoo.org
8# @BLURB: many extra (but common) functions that are used in ebuilds 8# @BLURB: many extra (but common) functions that are used in ebuilds
49 sleep 1 49 sleep 1
50 done 50 done
51 fi 51 fi
52} 52}
53 53
54else
55
56ebeep() {
57 eqawarn "QA Notice: ebeep is not defined in EAPI=3, please file a bug at http://bugs.gentoo.org"
58}
59
60epause() {
61 eqawarn "QA Notice: epause is not defined in EAPI=3, please file a bug at http://bugs.gentoo.org"
62}
63
54fi 64fi
55 65
56# @FUNCTION: ecvs_clean 66# @FUNCTION: ecvs_clean
57# @USAGE: [list of dirs] 67# @USAGE: [list of dirs]
58# @DESCRIPTION: 68# @DESCRIPTION:
73 [[ -z $* ]] && set -- . 83 [[ -z $* ]] && set -- .
74 find "$@" -type d -name '.svn' -prune -print0 | xargs -0 rm -rf 84 find "$@" -type d -name '.svn' -prune -print0 | xargs -0 rm -rf
75} 85}
76 86
77# @FUNCTION: eshopts_push 87# @FUNCTION: eshopts_push
78# @USAGE: [options to `set`] 88# @USAGE: [options to `set` or `shopt`]
79# @DESCRIPTION: 89# @DESCRIPTION:
80# Often times code will want to enable a shell option to change code behavior. 90# Often times code will want to enable a shell option to change code behavior.
81# Since changing shell options can easily break other pieces of code (which 91# Since changing shell options can easily break other pieces of code (which
82# assume the default state), eshopts_push is used to (1) push the current shell 92# assume the default state), eshopts_push is used to (1) push the current shell
83# options onto a stack and (2) pass the specified arguments to set. 93# options onto a stack and (2) pass the specified arguments to set.
94#
95# If the first argument is '-s' or '-u', we assume you want to call `shopt`
96# rather than `set` as there are some options only available via that.
84# 97#
85# A common example is to disable shell globbing so that special meaning/care 98# A common example is to disable shell globbing so that special meaning/care
86# may be used with variables/arguments to custom functions. That would be: 99# may be used with variables/arguments to custom functions. That would be:
87# @CODE 100# @CODE
88# eshopts_push -o noglob 101# eshopts_push -o noglob
96# @CODE 109# @CODE
97eshopts_push() { 110eshopts_push() {
98 # have to assume __ESHOPTS_SAVE__ isn't screwed with 111 # have to assume __ESHOPTS_SAVE__ isn't screwed with
99 # as a `declare -a` here will reset its value 112 # as a `declare -a` here will reset its value
100 local i=${#__ESHOPTS_SAVE__[@]} 113 local i=${#__ESHOPTS_SAVE__[@]}
114 if [[ $1 == -[su] ]] ; then
101 __ESHOPTS_SAVE__[$i]=$- 115 __ESHOPTS_SAVE__[$i]=$(shopt -p)
102 [[ $# -eq 0 ]] && return 0 116 [[ $# -eq 0 ]] && return 0
117 shopt "$@" || die "eshopts_push: bad options to shopt: $*"
118 else
119 __ESHOPTS_SAVE__[$i]=$-
120 [[ $# -eq 0 ]] && return 0
103 set "$@" || die "eshopts_push: bad options to set: $*" 121 set "$@" || die "eshopts_push: bad options to set: $*"
122 fi
104} 123}
105 124
106# @FUNCTION: eshopts_pop 125# @FUNCTION: eshopts_pop
107# @USAGE: 126# @USAGE:
108# @DESCRIPTION: 127# @DESCRIPTION:
112 [[ $# -ne 0 ]] && die "eshopts_pop takes no arguments" 131 [[ $# -ne 0 ]] && die "eshopts_pop takes no arguments"
113 local i=$(( ${#__ESHOPTS_SAVE__[@]} - 1 )) 132 local i=$(( ${#__ESHOPTS_SAVE__[@]} - 1 ))
114 [[ ${i} -eq -1 ]] && die "eshopts_{push,pop}: unbalanced pair" 133 [[ ${i} -eq -1 ]] && die "eshopts_{push,pop}: unbalanced pair"
115 local s=${__ESHOPTS_SAVE__[$i]} 134 local s=${__ESHOPTS_SAVE__[$i]}
116 unset __ESHOPTS_SAVE__[$i] 135 unset __ESHOPTS_SAVE__[$i]
136 if [[ ${s} == "shopt -"* ]] ; then
137 eval "${s}" || die "eshopts_pop: sanity: invalid shopt options: ${s}"
138 else
117 set +$- || die "eshopts_pop: sanity: invalid shell settings: $-" 139 set +$- || die "eshopts_pop: sanity: invalid shell settings: $-"
118 set -${s} || die "eshopts_pop: sanity: unable to restore saved shell settings: ${s}" 140 set -${s} || die "eshopts_pop: sanity: unable to restore saved shell settings: ${s}"
141 fi
119} 142}
120 143
121# @VARIABLE: EPATCH_SOURCE 144# @VARIABLE: EPATCH_SOURCE
122# @DESCRIPTION: 145# @DESCRIPTION:
123# Default directory to search for patches. 146# Default directory to search for patches.

Legend:
Removed from v.1.329  
changed lines
  Added in v.1.332

  ViewVC Help
Powered by ViewVC 1.1.20