[devel] RPM macros fonts
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Вс Апр 2 18:22:21 MSD 2006
On Sun, Apr 02, 2006 at 04:42:55PM +0400, Dmitry V. Levin wrote:
> На оба этих вопроса у меня такой ответ: чем больше будет перенесено из
> макроса во внешний скрипт, тем лучше, поскольку при необходимости внести
> изменения сделать это будет существенно проще и быстрее, ибо не потребуется
> пересобирать пакеты.
Хорошо, займёмся переписыванием макросов в виде скриптов по образу и
подобию info-install:
/usr/sbin/install_fonts:
-----------------------------------------------------------------------
#!/bin/sh -e
PROG=install_fonts
Fatal()
{
echo "$PROG: $*" >&2
exit 1
}
Usage()
{
cat >&2 <<EOF
install_fonts - register new fonts in various subsystems.
Usage: $PROG [options] DIR...
Valid options are:
--bitmap install X11 bitmap fonts (*.pcf)
--type1 install Type 1 fonts (*.pfa, *.pfb)
--ttf install TrueType fonts (*.ttf)
--otf install OpenType fonts (*.otf)
--first put font directory first in the font path
EOF
[ -n "$1" ] && exit "$1" || exit
}
TEMP=`getopt -n "$PROG" -o h -l help,bitmap,type1,ttf,otf,first -- "$@"` || Usage 1
eval set -- "$TEMP"
bitmap=
type1=
ttf=
otf=
first=
while :; do
case "$1" in
--bitmap)
bitmap=1
shift
;;
--type1)
type1=1
shift
;;
--ttf)
ttf=1
shift
;;
--otf)
otf=1
shift
;;
--first)
first="-f"
shift
;;
-h|--help)
Usage 0
;;
--)
shift
break
;;
*)
Fatal "$PROG: unrecognized option: $1"
;;
esac
done
for dir in "$@"; do
if [ -n "$ttf$otf" ]; then
/usr/sbin/ttmkfdir -d "$dir" -o "$dir"/fonts.scale 2>/dev/null ||:
fi
if [ -n "$type1" ]; then
/usr/bin/mkfontscale "$dir" ||:
fi
/usr/bin/mkfontdir "$dir" ||:
/usr/bin/fc-cache "$dir" ||:
/usr/sbin/chkfontpath -q $first -a "$dir" ||:
done
-----------------------------------------------------------------------
/usr/sbin/uninstall_fonts:
-----------------------------------------------------------------------
#!/bin/sh -e
PROG=uninstall_fonts
if ! [ "$RPM_INSTALL_ARG1" -ge 0 ] 2>/dev/null; then
echo "$PROG: invalid or undefined variable: RPM_INSTALL_ARG1" >&2
exit 1
fi
[ "$RPM_INSTALL_ARG1" -eq 0 ] || exit 0
for dir in "$@"; do
/usr/sbin/chkfontpath -q -r "$dir" ||:
done
-----------------------------------------------------------------------
Макросы (кроме %_*dir):
-----------------------------------------------------------------------
%add_bitmap_font_path() %_sbindir/install_fonts --bitmap %1
%add_type1_font_path() %_sbindir/install_fonts --type1 %1
%add_ttf_font_path() %_sbindir/install_fonts --ttf %1
%add_otf_font_path() %_sbindir/install_fonts --otf %1
%add_bitmap_font_path_first() %_sbindir/install_fonts --bitmap --first %1
%remove_font_path() %_sbindir/uninstall_fonts %1
-----------------------------------------------------------------------
Как назвать пакет со скриптами - alt-fonts-install? (Просто
fonts-install будет мешаться среди прочих fonts-$TYPE-$NAME - или
пусть там и торчит?)
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20060402/1dfa817d/attachment-0001.bin>
Подробная информация о списке рассылки Devel