From 7b5293563ba146a6a34746ff461c6b1a75674395 Mon Sep 17 00:00:00 2001 From: Diego Elio Pettenò Date: Sun, 18 Sep 2005 17:33:44 +0000 Subject: Added portability eclass with seq() function to replace seq command. Make eutils use the new seq command for enewuser/enewgroup. --- eclass/portability.eclass | 75 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 eclass/portability.eclass (limited to 'eclass/portability.eclass') diff --git a/eclass/portability.eclass b/eclass/portability.eclass new file mode 100644 index 000000000000..a83e35441482 --- /dev/null +++ b/eclass/portability.eclass @@ -0,0 +1,75 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/eclass/portability.eclass,v 1.1 2005/09/18 17:33:44 flameeyes Exp $ +# +# Author: Diego Pettenò +# +# This eclass is created to avoid using non-portable GNUisms inside ebuilds +# +# NB: If you add anything, please comment it! + +# treecopy orig1 orig2 orig3 .... dest +# +# mimic cp --parents copy, but working on BSD userland as well +treecopy() { + dest=${!#} + files_count=$# + + while(( $# > 1 )); do + dirstruct=$(dirname "$1") + mkdir -p "${dest}/${dirstruct}" + cp -pPR "$1" "${dest}/${dirstruct}" + + shift + done +} + +# seq min max +# +# compatibility function that mimes seq command if not available +seq() { + local p + p=$(type -P seq) + + case $# in + 1) + min=1 + max=$1 + step=1 + ;; + 2) + min=$1 + max=$2 + step=1 + ;; + 3) + min=$1 + max=$3 + step=$2 + ;; + *) + die "seq called with wrong parameters number" + esac + + if [[ -z "${p}" ]]; then + local reps + # BSD userland + if [[ ${step} != 0 ]]; then + reps=$(( ($max-$min) / $step +1 )) + else + reps=0 + fi + + jot $reps $min $max $step + else + "${p}" $min $step $max + fi +} + +# Gets the linker flag to link to dlopen() function +dlopen_lib() { + if [[ ${ELIBC} != *BSD ]]; then + echo "-ldl" + fi +} + -- cgit v1.2.3-65-gdbad