Mountsmb2
Набор скриптов mountsmb2 (там их три) был написан мной достаточно давно и преследовал тольк одну цель – автоматически монтировать SMB/CIFS-сетевые ресурсы от других Samba-серверов и компьютеров под управлением Windows. Поскольку это скрипт, написанный на языке командной оболочки sh, то никакой сборки порта не требуется и именно поэтому этот порт будет рассмотрен в качестве примера.
PORTNAME= mountsmb2
PORTVERSION= 0.90.1
CATEGORIES= sysutils net
MASTER_SITES= ftp://ftp.granch.ru/pub/other/
MAINTAINER=
[email protected]
COMMENT= SMB/CIFS shares mounting scripts to do it at login
RUN_DEPENDS= findsmb:${PORTSDIR}/net/samba3 \
sudo:${PORTSDIR}/security/sudo \
gawk:${PORTSDIR}/lang/gawk
USE_BZIP2= yes
NO_BUILD= yes
.include
do-install:
.for i in smb2awk smb2nsmbrc mountsmb2
${INSTALL_SCRIPT} ${WRKSRC}/${i} ${PREFIX}/bin
.endfor
-@${MKDIR } ${EXAMPLESDIR}
.for i in sudoers .login .nsmbrc .mssmbrc
${INSTALL_DATA} ${WRKSRC}/${i} ${EXAMPLESDIR}
.endfor
-@${MKDIR } ${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/README.FreeBSD
${DOCSDIR}
@${SED} -e "s,%%EXAMPLESDIR%%,${EXAMPLESDIR},g" -i .old ${PKGMESSAGE}
@${CAT} ${PKGMESSAGE}
@${RM} -f ${PKGMESSAGE}
@${MV} ${PKGMESSAGE}.old ${PKGMESSAGE}
.include
В RUN_DEPENDS перечисляются все порты, от которых зависит данный скрипт, а именно GNU AWK, sudo и Samba, из которой на самом деле нужна только программа findsmb. «USE_BZIP2=yes» указывает на то, что дистрибутив упакован программой bzip2. «NO_BUILD=yes» указывает на то, что программа не требует сборки. Если этого не указать, то система будет пытаться выполнить команду make в каталоге порта, не найдет Makefile и аварийно завершится.
Инсталляцией порт управляет самостоятельно – в Makefile присутствует заменяющая подмишень do-install. Здесь хорошо видно, как можно организовать цикл, который установит несколько файлов, перечисленных в списке, в указанное место.