Скрипт для создания всех пакетов, требуемых по зависимостям, для порта в ОС FreeBSD |
[исправить] |
По сути, выполняет действия, аналогичные pkg_create с ключём -R, который
появился только в FreeBSD 6.x.
Однако данный скрипт позволяет указывать короткое имя порта и каталог,
в котором создавать пакеты. А главное, он работает и на тех системах,
где pkg_create не поддерживает ключ -R.
#!/bin/sh
#
# pkg_depend
# Create all packages (with dependence) needed by some port for FreeBSD 5.x+
#
# Version: 1.4
# Copyright (c) 2005,2006 Alexey Tsvetnov, vorakl@fbsd.kiev.ua
#
# Path to packages directory
pkgpath="/usr/ports/packages/All"
# Command for get package's version
pkgvercmd="pkg_version -v"
#pkgvercmd="portversion -v" # more faster than pkg_version
getdepend()
{
[ ! -d $2 ] && echo -n "Creating directory ($2)..." && mkdir -p $2 && echo "Done."
cd ${pkgpath}
if [ ! -f ${pkgpath}/$1.tbz ]; then
echo -n "Creating package ($1)..."
pkg_create -yb $1
echo "Done."
fi
echo -n "Copying package ($1)..."
cp -f ${pkgpath}/$1.tbz $2
echo "Done."
for LINE in `pkg_info -r $1 | grep Dependency\: | awk '{print $2}'`
do
if [ ! -f ${pkgpath}/${LINE}.tbz ]; then
echo -n "Creating package (${LINE})..."
pkg_create -yb ${LINE}
echo "Done."
fi
echo -n "Copying package (${LINE})..."
cp -f ${pkgpath}/${LINE}.tbz $2
echo "Done."
done
}
gethelp()
{
echo ""
echo "Usage: `basename $0` <Full/Short pkg_name> <Directory>"
echo ""
echo "If specify short package name script will get first find entry"
echo ""
echo "Example: `basename $0` dia-gnome-0.94_4,1 /tmp/pkg/"
echo " `basename $0` dia-gnome /tmp/pkg/"
echo ""
exit 1
}
main()
{
if [ "$2" = "" ]; then gethelp
else
echo -n "Checking package name ($1)..."
if [ "`echo $1 | grep '\-[0-9]'`" = "" ]; then
pkgname=`${pkgvercmd} | grep -E '^'$1'-[0-9].*' | awk '{print $1}' | head -1`
else
pkgname=`${pkgvercmd} | grep $1 | awk '{print $1}' | head -1`
fi
echo "Done."
if [ "${pkgname}" = "" ]; then
echo "Package '$1' not found! Exit."
exit 2
else
getdepend ${pkgname} $2
fi
fi
}
main $1 $2
exit 0
|
|
|
|
Раздел: Корень / Программисту и web-разработчику / Shell / Готовые скрипты |