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

Diff of /eclass/eutils.eclass

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

Revision 1.59 Revision 1.60
1# Copyright 1999-2003 Gentoo Technologies, Inc. 1# Copyright 1999-2003 Gentoo Technologies, Inc.
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.59 2003/09/22 22:44:49 azarah Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.60 2003/09/23 01:26:58 vapier Exp $
4# 4#
5# Author: Martin Schlemmer <azarah@gentoo.org> 5# Author: Martin Schlemmer <azarah@gentoo.org>
6# 6#
7# This eclass is for general purpose functions that most ebuilds 7# This eclass is for general purpose functions that most ebuilds
8# have to implement themselves. 8# have to implement themselves.
977# Display a license for user to accept. 977# Display a license for user to accept.
978# 978#
979# Usage: check_license [license] 979# Usage: check_license [license]
980# - If the file is not specified then ${LICENSE} is used. 980# - If the file is not specified then ${LICENSE} is used.
981check_license() { 981check_license() {
982 local src="$1" 982 local lic=$1
983
984 if [ -z "${src}" ] 983 if [ -z "${lic}" ] ; then
985 then
986 src="${PORTDIR}/licenses/${LICENSE}" 984 lic="${PORTDIR}/licenses/${LICENSE}"
987 else 985 else
988 if [ -e "${PORTDIR}/licenses/${src}" ] 986 if [ -e "${PORTDIR}/licenses/${src}" ] ; then
989 then
990 src="${PORTDIR}/licenses/${src}" 987 lic="${PORTDIR}/licenses/${src}"
991 elif [ -e "${PWD}/${src}" ] 988 elif [ -e "${PWD}/${src}" ] ; then
992 then
993 src="${PWD}/${src}" 989 lic="${PWD}/${src}"
994 elif [ -e "${src}" ] 990 elif [ -e "${src}" ] ; then
995 then
996 src="${src}" 991 lic="${src}"
997 fi
998 fi 992 fi
993 fi
999 [ ! -e "${src}" ] && die "Could not find requested license ${src}" 994 [ ! -f "${lic}" ] && die "Could not find requested license ${src}"
1000 995
1001 # here is where we check for the license... 996 # here is where we check for the licenses the user already
1002 # if we don't find one, we ask the user for it 997 # accepted ... if we don't find a match, we make the user accept
1003 if [ ! -d "/usr/share/licenses" ] 998 local alic
1004 then 999 for alic in ${ACCEPT_LICENSE} ; do
1005 mkdir -p /usr/share/licenses 1000 [ "${alic}" == "*" ] && return 0
1006 fi 1001 [ "${alic}" == "${lic}" ] && return 0
1007 if [ -f "/usr/share/licenses/${LICENSE}" ] 1002 done
1008 then 1003
1009 einfo "The license for this application has already been accepted." 1004 local licmsg="`mymktemp ${T}`"
1010 else 1005 cat << EOF > ${licmsg}
1006**********************************************************
1007The following license outlines the terms of use of this
1011 ewarn "You MUST accept this license for installation to continue." 1008package. You MUST accept this license for installation to
1009continue. When you are done viewing, hit 'q'. If you
1012 eerror "If you CTRL+C out of this, the install will not run!" 1010CTRL+C out of this, the install will not run!
1013 echo 1011**********************************************************
1014 1012
1015 ${PAGER} ${src} || die "Could not execute ${PAGER} ${src}" 1013EOF
1014 cat ${lic} >> ${licmsg}
1015 ${PAGER:-less} ${licmsg} || die "Could not execute pager (${PAGER}) to accept ${lic}"
1016 einfo "Do you accept the terms of this license? [yes/no]" 1016 einfon "Do you accept the terms of this license? [yes/no] "
1017 read ACCEPT_TERMS 1017 read alic
1018 case ${ACCEPT_TERMS} in 1018 case ${alic} in
1019 "yes"|"Yes"|"y"|"Y") 1019 yes|Yes|y|Y)
1020 cp ${src} /usr/share/licenses 1020 return 0
1021 exit 0
1022 ;; 1021 ;;
1023 *) 1022 *)
1023 echo;echo;echo
1024 eerror "You MUST accept the license to continue! Exiting!" 1024 eerror "You MUST accept the license to continue! Exiting!"
1025 die "Failed to accept license" 1025 die "Failed to accept license"
1026 ;; 1026 ;;
1027 esac 1027 esac
1028 fi
1029} 1028}
1030

Legend:
Removed from v.1.59  
changed lines
  Added in v.1.60

  ViewVC Help
Powered by ViewVC 1.1.20