vp-build/common/environment/setup/install.sh
Juan RP 790202ddbd xbps-src: move helpers to environment; there's no need to have them.
Those helpers were just setting up some extra functions that can be used
on templates, and this can be done already via environment, so let's remove
the helpers completely.
2014-08-30 09:01:29 +02:00

223 lines
4.3 KiB
Bash

# -*-* shell *-*-
# enable aliases
shopt -s expand_aliases
# clear all aliases
unalias -a
# disable wildcards helper
_noglob_helper() {
set +f
"$@"
}
# Apply _noglob to v* commands
for cmd in vinstall vcopy vmove vmkdir vbin vman vdoc vconf vsconf vlicense; do
alias ${cmd}="set -f; _noglob_helper _${cmd}"
done
_vbin() {
local file="$1" targetfile="$2"
if [ $# -lt 1 ]; then
msg_red "$pkgver: vbin: 1 argument expected: <file>\n"
return 1
fi
vinstall "$file" 755 usr/bin "$targetfile"
}
_vman() {
local file="$1" target="${2:-${1##*/}}"
if [ $# -lt 1 ]; then
msg_red "$pkgver: vman: 1 argument expected: <file>\n"
return 1
fi
suffix=${target##*.}
if [[ $target =~ (.*)\.([a-z][a-z](_[A-Z][A-Z])?)\.(.*) ]]
then
name=${BASH_REMATCH[1]}.${BASH_REMATCH[4]}
mandir=${BASH_REMATCH[2]}/man${suffix:0:1}
else
name=$target
mandir=man${suffix:0:1}
fi
if [[ ${mandir} == *man[0-9n] ]] ; then
vinstall "$file" 644 "usr/share/man/${mandir}" "$name"
return 0
fi
msg_red "$pkgver: vman: Filename '${target}' does not look like a man page\n"
return 1
}
_vdoc() {
local file="$1" targetfile="$2"
if [ $# -lt 1 ]; then
msg_red "$pkgver: vdoc: 1 argument expected: <file>\n"
return 1
fi
vinstall "$file" 644 "usr/share/doc/${pkgname}" "$targetfile"
}
_vconf() {
local file="$1" targetfile="$2"
if [ $# -lt 1 ]; then
msg_red "$pkgver: vconf: 1 argument expected: <file>\n"
return 1
fi
vinstall "$file" 644 etc "$targetfile"
}
_vsconf() {
local file="$1" targetfile="$2"
if [ $# -lt 1 ]; then
msg_red "$pkgver: vsconf: 1 argument expected: <file>\n"
return 1
fi
vinstall "$file" 644 "usr/share/examples/${pkgname}" "$targetfile"
}
_vlicense() {
local file="$1" targetfile="$2"
if [ $# -lt 1 ]; then
msg_red "$pkgver: vlicense: 1 argument expected: <file>\n"
return 1
fi
vinstall "$file" 644 "usr/share/licenses/${pkgname}" "$targetfile"
}
_vinstall() {
local file="$1" mode="$2" targetdir="$3" targetfile="$4"
local _destdir=
if [ -z "$DESTDIR" ]; then
msg_red "$pkgver: vinstall: DESTDIR unset, can't continue...\n"
return 1
fi
if [ $# -lt 3 ]; then
msg_red "$pkgver: vinstall: 3 arguments expected: <file> <mode> <target-directory>\n"
return 1
fi
if [ ! -r "$file" ]; then
msg_red "$pkgver: vinstall: cannot find '$file'...\n"
return 1
fi
if [ -n "$XBPS_PKGDESTDIR" ]; then
_destdir="$PKGDESTDIR"
else
_destdir="$DESTDIR"
fi
if [ -z "$targetfile" ]; then
install -Dm${mode} ${file} "${_destdir}/${targetdir}/$(basename ${file})"
else
install -Dm${mode} ${file} "${_destdir}/${targetdir}/$(basename ${targetfile})"
fi
}
_vcopy() {
local files="$1" targetdir="$2" _destdir
if [ -z "$DESTDIR" ]; then
msg_red "$pkgver: vcopy: DESTDIR unset, can't continue...\n"
return 1
fi
if [ $# -ne 2 ]; then
msg_red "$pkgver: vcopy: 2 arguments expected: <files> <target-directory>\n"
return 1
fi
if [ -n "$XBPS_PKGDESTDIR" ]; then
_destdir="$PKGDESTDIR"
else
_destdir="$DESTDIR"
fi
cp -a $files ${_destdir}/${targetdir}
}
_vmove() {
local files="$1" _destdir _pkgdestdir _targetdir
if [ -z "$DESTDIR" ]; then
msg_red "$pkgver: vmove: DESTDIR unset, can't continue...\n"
return 1
elif [ -z "$PKGDESTDIR" ]; then
msg_red "$pkgver: vmove: PKGDESTDIR unset, can't continue...\n"
return 1
fi
if [ $# -ne 1 ]; then
msg_red "$pkgver: vmove: 1 argument expected: <files>\n"
return 1
fi
for f in ${files}; do
_targetdir=$(dirname $f)
break
done
if [ "$files" = "all" ]; then
files="*"
fi
if [ -n "$XBPS_PKGDESTDIR" ]; then
_pkgdestdir="$PKGDESTDIR"
_destdir="$DESTDIR"
else
_pkgdestdir="$DESTDIR"
_destdir="$DESTDIR"
fi
if [ -z "${_targetdir}" ]; then
[ ! -d ${_pkgdestdir} ] && install -d ${_pkgdestdir}
mv ${_destdir}/$files ${_pkgdestdir}
else
if [ ! -d ${_pkgdestdir}/${_targetdir} ]; then
install -d ${_pkgdestdir}/${_targetdir}
fi
mv ${_destdir}/$files ${_pkgdestdir}/${_targetdir}
fi
}
_vmkdir() {
local dir="$1" mode="$2" _destdir
if [ -z "$DESTDIR" ]; then
msg_red "$pkgver: vmkdir: DESTDIR unset, can't continue...\n"
return 1
fi
if [ -z "$dir" ]; then
msg_red "vmkdir: directory argument unset.\n"
return 1
fi
if [ -n "$XBPS_PKGDESTDIR" ]; then
_destdir="$PKGDESTDIR"
else
_destdir="$DESTDIR"
fi
if [ -z "$mode" ]; then
install -d ${_destdir}/${dir}
else
install -dm${mode} ${_destdir}/${dir}
fi
}