diff options
author | linimon <linimon@FreeBSD.org> | 2007-05-25 08:09:37 +0800 |
---|---|---|
committer | linimon <linimon@FreeBSD.org> | 2007-05-25 08:09:37 +0800 |
commit | e54d53f02dfc334bcfc61cbbf3b32d5577a71202 (patch) | |
tree | 1cbfda9b9f47cdba8be695afff9afad456d09e52 | |
parent | c00af37e5555ed38daf4e282b430d175b6282f77 (diff) | |
download | freebsd-ports-gnome-e54d53f02dfc334bcfc61cbbf3b32d5577a71202.tar.gz freebsd-ports-gnome-e54d53f02dfc334bcfc61cbbf3b32d5577a71202.tar.zst freebsd-ports-gnome-e54d53f02dfc334bcfc61cbbf3b32d5577a71202.zip |
* Make 'make-deinstall-all' check for moved ports. [1]
* Defined the installation directories PORTEXAMPLES and PORTDATA. [2]
* Add USE_MAKESELF knob is added for ports that use the makeself archiver. [3]
* Update the description of fetch-list; add targets fetch-required-list,
fetch-url-list, and fetch-urlall-list. [4]
* Make 'make search' also search in ports/MOVED. [5]
* Move several Makevar definitions to the pre-makefile section:
DATADIR, DOCSDIR, ETCDIR, EXAMPLESDIR, WWWDIR. [6]
* The target 'ignorelist-verbose' was added for portsmon. [7]
PR: 69965 [1], 78490 [2], 79398 [3], 86776 [4], 104161 [5], 110781 [6]
Submitted by: Dancho Penev <dpenev at mnet dot bg> [1], mnag [2],
jylefort [3], edwin [4], Lars Engels <lars dot engels
at 0x20 dot net> [5], Alexander Logvinov <ports at
logvinov dot com> [6], linimon [7]
-rw-r--r-- | CHANGES | 22 | ||||
-rw-r--r-- | Mk/bsd.port.mk | 241 | ||||
-rw-r--r-- | Mk/bsd.port.subdir.mk | 37 |
3 files changed, 274 insertions, 26 deletions
@@ -10,6 +10,28 @@ in the release notes. All ports committers are allowed to commit to this file. +20070524: +AUTHOR: portmgr@FreeBSD.org +The following changes were made to the ports infrastructure: + + * The 'make-deinstall-all' target now checks for moved ports. + + * The installation directories PORTEXAMPLES and PORTDATA are now defined. + + * The USE_MAKESELF knob is added for ports that use the makeself archiver. + + * The description of fetch-list was updated. The targets fetch-required-list, + fetch-url-list, and fetch-urlall-list were added. + + * 'make search' will also now search in ports/MOVED. + + * The default method for 'make update' is now portsnap. Previously, + you had to manually select one of 3 methods: SUP_UPDATE, CVS_UPDATE, + or PORTSNAP_UPDATE. The latter is now obsolete. + + * Several Makevar definitions have been moved to the pre-makefile section: + DATADIR, DOCSDIR, ETCDIR, EXAMPLESDIR, WWWDIR. + 20070403: AUTHOR: portmgr@FreeBSD.org The following changes were made to the ports infrastructure: diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk index 756c6175b5f5..0bbbcc5f204f 100644 --- a/Mk/bsd.port.mk +++ b/Mk/bsd.port.mk @@ -94,7 +94,7 @@ FreeBSD_MAINTAINER= portmgr@FreeBSD.org # EXTRACT_SUFX - Suffix for archive names # You never have to set both DISTFILES and EXTRACT_SUFX. # Default: .tar.bz2 if USE_BZIP2 is set, .zip if USE_ZIP is -# set, .tar.gz otherwise. +# set, .run if USE_MAKESELF is set, .tar.gz otherwise). # MASTER_SITES - Primary location(s) for distribution files if not found # locally. See bsd.sites.mk for common choices for # MASTER_SITES. @@ -298,6 +298,8 @@ FreeBSD_MAINTAINER= portmgr@FreeBSD.org # compression. # USE_ZIP - If set, this port distfile uses zip, not tar w/[bg]zip # for compression. +# USE_MAKESELF - If set, this port distfile uses makeself, not tar w/[bg]zip +# for compression. # USE_DOS2UNIX - If set to "YES", remove the ^M from all files # under ${WRKSRC}. If set to a string, remove in all # files under ${WRKSRC} with one of these names the ^Ms. @@ -673,24 +675,51 @@ FreeBSD_MAINTAINER= portmgr@FreeBSD.org # installed (for example because NOPORTDOCS is defined). # Useful for dynamically generated documentation. # +# Set the following to specify all documentation your port installs into +# ${EXAMPLESDIR} +# +# PORTEXAMPLES - A list of files and directories relative to EXAMPLESDIR. +# Shell glob patterns can be used, directories include +# the entire subtree of contained files and directories. +# Should not be set when no examples files are +# installed (for example because NOPORTEXAMPLES is defined). +# Useful for dynamically generated examples. +# +# Set the following to specify all documentation your port installs into +# ${DATADIR} +# +# PORTDATA - A list of files and directories relative to DATADIR. +# Shell glob patterns can be used, directories include +# the entire subtree of contained files and directories. +# Should not be set when no data files are +# installed (for example because NOPORTDATA is defined). +# Useful for dynamically generated data files. +# # Default targets and their behaviors: # -# fetch - Retrieves ${DISTFILES} (and ${PATCHFILES} if defined) -# into ${DISTDIR} as necessary. -# fetch-list - Show list of files that would be retrieved by fetch. +# fetch - Retrieves missing ${DISTFILES} and ${PATCHFILES} for this +# port. +# fetch-list - Show list of commands to retrieve missing ${DISTFILES} and +# ${PATCHFILES} for this port. # fetch-recursive -# - Retrieves ${DISTFILES} (and ${PATCHFILES} if defined), -# for port and dependencies into ${DISTDIR} as necessary. +# - Retrieves missing ${DISTFILES} and ${PATCHFILES} for this +# port and dependencies. # fetch-recursive-list -# - Show list of files that would be retrieved by -# fetch-recursive. -# fetch-required-list -# - Show list of files that would be retrieved by -# fetch-required. +# - Show list of commands to retrieve missing ${DISTFILES} and +# ${PATCHFILES} for this port and dependencies. # fetch-required -# - Retrieves ${DISTFILES} (and ${PATCHFILES} if defined), -# for port and dependencies that are not already installed -# into ${DISTDIR}. +# - Retrieves missing ${DISTFILES} and ${PATCHFILES} for this +# port and dependencies. +# fetch-required-list +# - Show list of commands to retrieve missing ${DISTFILES} and +# ${PATCHFILES} for this port and dependencies. +# fetch-url-list +# - Show list of URLS to retrieve missing ${DISTFILES} and +# ${PATCHFILES} for this port. +# fetch-urlall-list +# - Show list of URLS to retrieve ${DISTFILES} and +# ${PATCHFILES} for this port. +# # all-depends-list # - Show all directories which are dependencies # for this port. @@ -796,7 +825,8 @@ FreeBSD_MAINTAINER= portmgr@FreeBSD.org # For extract: # # EXTRACT_CMD - Command for extracting archive: "bzip2" if USE_BZIP2 -# is set, "unzip" if USE_ZIP is set, "gzip" otherwise. +# is set, "unzip" if USE_ZIP is set, "unmakeself" if +# USE_MAKESELF if set, "gzip" otherwise. # EXTRACT_BEFORE_ARGS # - Arguments to ${EXTRACT_CMD} before filename. # Default: "-dc" @@ -1160,6 +1190,7 @@ TR?= LANG=C /usr/bin/tr TRUE?= true # Shell builtin UNAME?= /usr/bin/uname UNZIP_CMD?= ${LOCALBASE}/bin/unzip +UNMAKESELF_CMD?= ${LOCALBASE}/bin/unmakeself WHICH?= /usr/bin/which XARGS?= /usr/bin/xargs YACC?= /usr/bin/yacc @@ -1378,6 +1409,12 @@ INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/} TARGETDIR:= ${DESTDIR}${PREFIX} +DOCSDIR?= ${TARGETDIR}/share/doc/${PORTNAME} +EXAMPLESDIR?= ${TARGETDIR}/share/examples/${PORTNAME} +DATADIR?= ${TARGETDIR}/share/${PORTNAME} +WWWDIR?= ${TARGETDIR}/www/${PORTNAME} +ETCDIR?= ${TARGETDIR}/etc/${PORTNAME} + .if defined(USE_LINUX_RPM) .include "${PORTSDIR}/Mk/bsd.linux-rpm.mk" .endif @@ -1407,6 +1444,8 @@ X_WINDOW_SYSTEM ?= xfree86-4 EXTRACT_SUFX?= .tar.bz2 .elif defined(USE_ZIP) EXTRACT_SUFX?= .zip +.elif defined(USE_MAKESELF) +EXTRACT_SUFX?= .run .else EXTRACT_SUFX?= .tar.gz .endif @@ -1645,7 +1684,7 @@ PLIST_SUB+= OSREL=${OSREL} PREFIX=%D LOCALBASE=${LOCALBASE_REL} X11BASE=${X11BAS DESTDIR=${DESTDIR} TARGETDIR=${TARGETDIR} SUB_LIST+= PREFIX=${PREFIX} LOCALBASE=${LOCALBASE_REL} X11BASE=${X11BASE_REL} \ DATADIR=${DATADIR} DOCSDIR=${DOCSDIR} EXAMPLESDIR=${EXAMPLESDIR} \ - WWWDIR=${WWWDIR} DESTDIR=${DESTDIR} TARGETDIR=${TARGETDIR} + WWWDIR=${WWWDIR} ETCDIR=${ETCDIR} DESTDIR=${DESTDIR} TARGETDIR=${TARGETDIR} PLIST_REINPLACE+= dirrmtry stopdaemon PLIST_REINPLACE_DIRRMTRY=s!^@dirrmtry \(.*\)!@unexec rmdir %D/\1 2>/dev/null || true! @@ -1672,6 +1711,18 @@ PLIST_SUB+= PORTDOCS="@comment " PLIST_SUB+= PORTDOCS="" .endif +.if defined(NOPORTEXAMPLES) +PLIST_SUB+= PORTEXAMPLES="@comment " +.else +PLIST_SUB+= PORTEXAMPLES="" +.endif + +.if defined(NOPORTDATA) +PLIST_SUB+= PORTDATA="@comment " +.else +PLIST_SUB+= PORTDATA="" +.endif + CONFIGURE_SHELL?= ${SH} MAKE_SHELL?= ${SH} @@ -1702,6 +1753,9 @@ PATCH_DEPENDS+= unzip:${PORTSDIR}/archivers/unzip .if defined(USE_ZIP) EXTRACT_DEPENDS+= unzip:${PORTSDIR}/archivers/unzip .endif +.if defined(USE_MAKESELF) +EXTRACT_DEPENDS+= unmakeself:${PORTSDIR}/archivers/unmakeself +.endif .if defined(USE_GMAKE) BUILD_DEPENDS+= gmake:${PORTSDIR}/devel/gmake CONFIGURE_ENV+= MAKE=${GMAKE} @@ -2267,6 +2321,10 @@ TAR?= /usr/bin/tar EXTRACT_CMD?= ${UNZIP_CMD} EXTRACT_BEFORE_ARGS?= -qo EXTRACT_AFTER_ARGS?= -d ${WRKDIR} +.elif defined(USE_MAKESELF) +EXTRACT_CMD?= ${UNMAKESELF_CMD} +EXTRACT_BEFORE_ARGS?= +EXTRACT_AFTER_ARGS?= .else EXTRACT_BEFORE_ARGS?= -dc .if defined(EXTRACT_PRESERVE_OWNERSHIP) @@ -3035,19 +3093,17 @@ INFO_PATH?= share/info INFO_PATH?= info .endif -DOCSDIR?= ${TARGETDIR}/share/doc/${PORTNAME} DOCSDIR_REL?= ${DOCSDIR:S,^${TARGETDIR}/,,} -EXAMPLESDIR?= ${TARGETDIR}/share/examples/${PORTNAME} EXAMPLESDIR_REL?= ${EXAMPLESDIR:S,^${TARGETDIR}/,,} -DATADIR?= ${TARGETDIR}/share/${PORTNAME} DATADIR_REL?= ${DATADIR:S,^${TARGETDIR}/,,} -WWWDIR?= ${TARGETDIR}/www/${PORTNAME} WWWDIR_REL?= ${WWWDIR:S,^${TARGETDIR}/,,} +ETCDIR_REL?= ${ETCDIR:S,^${TARGETDIR}/,,} PLIST_SUB+= DOCSDIR="${DOCSDIR_REL}" \ EXAMPLESDIR="${EXAMPLESDIR_REL}" \ DATADIR="${DATADIR_REL}" \ - WWWDIR="${WWWDIR_REL}" + WWWDIR="${WWWDIR_REL}" \ + ETCDIR="${ETCDIR_REL}" DESKTOPDIR?= ${TARGETDIR}/share/applications _DESKTOPDIR_REL= ${DESKTOPDIR:S,^${TARGETDIR}/,,}/ @@ -3183,6 +3239,18 @@ ignorelist: @${DO_NADA} .endif +.if defined(IGNORE) || defined(NO_PACKAGE) +ignorelist-verbose: +.if defined(IGNORE) + @${ECHO_MSG} "${PKGNAME}|IGNORE: "${IGNORE:Q} +.else + @${ECHO_MSG} "${PKGNAME}|NO_PACKAGE: "${NO_PACKAGE:Q} +.endif +.else +ignorelist-verbose: + @${DO_NADA} +.endif + ################################################################ # Clean directories for ftp or CDROM. ################################################################ @@ -4202,7 +4270,8 @@ _INSTALL_SEQ= install-message check-conflicts \ _INSTALL_SUSEQ= check-umask install-mtree pre-su-install \ pre-su-install-script do-install install-desktop-entries \ post-install post-install-script add-plist-info \ - add-plist-docs add-plist-post install-rc-script compress-man \ + add-plist-docs add-plist-examples add-plist-data \ + add-plist-post install-rc-script compress-man \ install-ldconfig-file fake-pkg security-check _PACKAGE_DEP= install _PACKAGE_SEQ= package-message pre-package pre-package-script \ @@ -4422,6 +4491,9 @@ deinstall-all: @${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN} from ${DESTDIR}" .endif @deinstall_names=`${PKG_INFO} -q -O ${PKGORIGIN}`; \ + for oldpkgorigin in $$(${GREP} "|${PKGORIGIN}|" ${PORTSDIR}/MOVED | ${CUT} -f 1 -d '|' | ${SORT} -u); do \ + deinstall_names="$${deinstall_names} $$(${PKG_INFO} -q -O $${oldpkgorigin})"; \ + done; \ if [ -n "$${deinstall_names}" ]; then \ for d in $${deinstall_names}; do \ if [ -z "${DESTDIR}" ] ; then \ @@ -4590,6 +4662,83 @@ fetch-list: .endif .endif +.if !target(fetch-url-list-int) +fetch-url-list-int: + @${MKDIR} ${_DISTDIR} + @(cd ${_DISTDIR}; \ + ${_MASTER_SITES_ENV}; \ + for _file in ${DISTFILES}; do \ + file=`${ECHO_CMD} $$_file | ${SED} -E -e 's/:[^:]+$$//'` ; \ + select=`${ECHO_CMD} $${_file#$${file}} | ${SED} -e 's/^://' -e 's/,/ /g'` ; \ + if [ ! -z "${LISTALL}" -o ! -f $$file -a ! -f `${BASENAME} $$file` ]; then \ + if [ ! -z "$$select" ] ; then \ + __MASTER_SITES_TMP= ; \ + for group in $$select; do \ + if [ ! -z \$${_MASTER_SITES_$${group}} ] ; then \ + eval ___MASTER_SITES_TMP=\$${_MASTER_SITES_$${group}} ; \ + __MASTER_SITES_TMP="$${__MASTER_SITES_TMP} $${___MASTER_SITES_TMP}" ; \ + fi \ + done; \ + ___MASTER_SITES_TMP= ; \ + SORTED_MASTER_SITES_CMD_TMP="${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} $${__MASTER_SITES_TMP} | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP}" ; \ + else \ + SORTED_MASTER_SITES_CMD_TMP="${SORTED_MASTER_SITES_DEFAULT_CMD}" ; \ + fi ; \ + for site in `eval $$SORTED_MASTER_SITES_CMD_TMP ${_RANDOMIZE_SITES}`; do \ + DIR=${DIST_SUBDIR}; \ + CKSIZE=`${GREP} "^SIZE ($${DIR:+$$DIR/}$$file)" ${MD5_FILE} | ${AWK} '{print $$4}'`; \ + case $${file} in \ + */*) args="-o $${file} $${site}$${file}";; \ + *) args=$${site}$${file};; \ + esac; \ + ${ECHO_CMD} $${args} ; \ + done; \ + fi \ + done) +.if defined(PATCHFILES) + @(cd ${_DISTDIR}; \ + ${_PATCH_SITES_ENV} ; \ + for _file in ${PATCHFILES}; do \ + file=`${ECHO_CMD} $$_file | ${SED} -E -e 's/:[^:]+$$//'` ; \ + select=`${ECHO_CMD} $${_file#$${file}} | ${SED} -e 's/^://' -e 's/,/ /g'` ; \ + if [ ! -z "${LISTALL}" -o ! -f $$file -a ! -f `${BASENAME} $$file` ]; then \ + if [ ! -z "$$select" ] ; then \ + __PATCH_SITES_TMP= ; \ + for group in $$select; do \ + if [ ! -z \$${_PATCH_SITES_$${group}} ] ; then \ + eval ___PATCH_SITES_TMP=\$${_PATCH_SITES_$${group}} ; \ + __PATCH_SITES_TMP="$${__PATCH_SITES_TMP} $${___PATCH_SITES_TMP}" ; \ + fi \ + done; \ + ___PATCH_SITES_TMP= ; \ + SORTED_PATCH_SITES_CMD_TMP="${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} $${__PATCH_SITES_TMP} | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP}" ; \ + else \ + SORTED_PATCH_SITES_CMD_TMP="${SORTED_PATCH_SITES_DEFAULT_CMD}" ; \ + fi ; \ + for site in `eval $$SORTED_PATCH_SITES_CMD_TMP ${_RANDOMIZE_SITES}`; do \ + DIR=${DIST_SUBDIR}; \ + CKSIZE=`${GREP} "^SIZE ($${DIR:+$$DIR/}$$file)" ${MD5_FILE} | ${AWK} '{print $$4}'`; \ + case $${file} in \ + */*) args="-o $${file} $${site}$${file}";; \ + *) args=$${site}$${file};; \ + esac; \ + ${ECHO_CMD} $${args} ; \ + done; \ + fi \ + done) +.endif +.endif + +.if !target(fetch-urlall-list) +fetch-urlall-list: + @LISTALL=yes ${MAKE} fetch-url-list-int +.endif + +.if !target(fetch-url-list) +fetch-url-list: + @${MAKE} fetch-url-list-int +.endif + # Generates patches. update-patches: @@ -5508,6 +5657,54 @@ add-plist-docs: .endif .endif +.if !target(add-plist-examples) +add-plist-examples: +.if defined(PORTEXAMPLES) && !defined(NOPORTEXAMPLES) + @if ${EGREP} -qe '^@cw?d' ${TMPPLIST} && \ + [ "`${SED} -En -e '/^@cw?d[ ]*/s,,,p' ${TMPPLIST} | ${TAIL} -n 1`" != "${PREFIX}" ]; then \ + ${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST}; \ + fi +.for x in ${PORTEXAMPLES} + @if ${ECHO_CMD} "${x}"| ${AWK} '$$1 ~ /(\*|\||\[|\]|\?|\{|\}|\$$)/ { exit 1};'; then \ + if [ ! -e ${EXAMPLESDIR}/${x} ]; then \ + ${ECHO_CMD} ${EXAMPLESDIR}/${x} | \ + ${SED} -e 's,^${PREFIX}/,,' >> ${TMPPLIST}; \ + fi;fi +.endfor + @${FIND} -P ${PORTEXAMPLES:S/^/${EXAMPLESDIR}\//} ! -type d 2>/dev/null | \ + ${SED} -ne 's,^${PREFIX}/,,p' >> ${TMPPLIST} + @${FIND} -P -d ${PORTEXAMPLES:S/^/${EXAMPLESDIR}\//} -type d 2>/dev/null | \ + ${SED} -ne 's,^${PREFIX}/,@dirrm ,p' >> ${TMPPLIST} + @${ECHO_CMD} "@dirrm ${EXAMPLESDIR:S,^${PREFIX}/,,}" >> ${TMPPLIST} +.else + @${DO_NADA} +.endif +.endif + +.if !target(add-plist-data) +add-plist-data: +.if defined(PORTDATA) && !defined(NOPORTDATA) + @if ${EGREP} -qe '^@cw?d' ${TMPPLIST} && \ + [ "`${SED} -En -e '/^@cw?d[ ]*/s,,,p' ${TMPPLIST} | ${TAIL} -n 1`" != "${PREFIX}" ]; then \ + ${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST}; \ + fi +.for x in ${PORTDATA} + @if ${ECHO_CMD} "${x}"| ${AWK} '$$1 ~ /(\*|\||\[|\]|\?|\{|\}|\$$)/ { exit 1};'; then \ + if [ ! -e ${DATADIR}/${x} ]; then \ + ${ECHO_CMD} ${DATADIR}/${x} | \ + ${SED} -e 's,^${PREFIX}/,,' >> ${TMPPLIST}; \ + fi;fi +.endfor + @${FIND} -P ${PORTDATA:S/^/${DATADIR}\//} ! -type d 2>/dev/null | \ + ${SED} -ne 's,^${PREFIX}/,,p' >> ${TMPPLIST} + @${FIND} -P -d ${PORTDATA:S/^/${DATADIR}\//} -type d 2>/dev/null | \ + ${SED} -ne 's,^${PREFIX}/,@dirrm ,p' >> ${TMPPLIST} + @${ECHO_CMD} "@dirrm ${DATADIR:S,^${PREFIX}/,,}" >> ${TMPPLIST} +.else + @${DO_NADA} +.endif +.endif + .if !target(add-plist-info) add-plist-info: # Process GNU INFO files at package install/deinstall time diff --git a/Mk/bsd.port.subdir.mk b/Mk/bsd.port.subdir.mk index 97f28a956917..951362d3b158 100644 --- a/Mk/bsd.port.subdir.mk +++ b/Mk/bsd.port.subdir.mk @@ -34,7 +34,8 @@ # clean-for-cdrom, clean-restricted, # clean-for-cdrom-list, clean-restricted-list, # configure, deinstall, -# depend, depends, describe, extract, fetch, fetch-list, ignorelist, +# depend, depends, describe, extract, fetch, fetch-list, +# ignorelist, ignorelist-verbose, # install, maintainer, makesum, package, readmes, realinstall, reinstall, # tags # @@ -104,6 +105,7 @@ TARGETS+= extract TARGETS+= fetch TARGETS+= fetch-list TARGETS+= ignorelist +TARGETS+= ignorelist-verbose TARGETS+= makesum TARGETS+= maintainer TARGETS+= package @@ -271,6 +273,8 @@ INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/} .else INDEXFILE?= INDEX .endif +MOVEDDIR?= ${PORTSDIR} +MOVEDFILE?= MOVED HTMLIFY= sed -e 's/&/\&/g' -e 's/>/\>/g' -e 's/</\</g' @@ -330,6 +334,7 @@ PORTSEARCH_DISPLAY_FIELDS?=name,path,info,maint,index,bdeps,rdeps,www PORTSEARCH_KEYLIM?=0 PORTSEARCH_XKEYLIM?=0 PORTSEARCH_IGNORECASE?=1 +PORTSEARCH_MOVED?=1 _PORTSEARCH= \ here=${.CURDIR}; \ @@ -408,11 +413,11 @@ _PORTSEARCH= \ split(display, d, /,[ \t]*/); \ split(xdisplay, xd, /,[ \t]*/); \ for (i in d) { \ - toprint = 1;\ + toprint = 1; \ for (j in xd) { \ if (d[i] == xd[j] ) { \ toprint=0; \ - break;\ + break; \ }\ } \ if (toprint == 1 ) disp[fields[d[i]]] = 1; \ @@ -444,7 +449,31 @@ _PORTSEARCH= \ printf("%s:\t%s\n", names[i], $$i); \ print(""); \ }' ${INDEXDIR}/${INDEXFILE}; \ - fi + if [ "$$name" -o "$$xname" ] && [ ${PORTSEARCH_MOVED} -gt 0 ]; \ + then \ + awk -F\| -v name="$$name" -v xname="$$xname" \ + -v icase="$${icase:-${PORTSEARCH_IGNORECASE}}" \ + 'BEGIN { \ + if (icase) { \ + if (length(name)) name = tolower(name); if (length(xname)) xname = tolower(xname); \ + } \ + fields["name"] = 1; names[1] = "Port"; \ + fields["destination"] = 2; names[2] = "Moved"; \ + fields["date"] = 3; names[3] = "Date"; \ + fileds["reason"] = 4; names[4] = "Reason"; \ + } \ + { \ + oldname = $$1; newname = $$2; \ + sub(".*\/", "", oldname); newname = sub(".*\/", "", newname); \ + if (((icase ? tolower(oldname) : oldname) ~ name) || ((icase ? tolower(newname) : newname) ~ name)) { \ + for (i = 1; i <= 4; i++) { \ + printf("%s:\t%s\n", names[i], $$i); \ + } \ + print(""); \ + } \ + }' ${MOVEDDIR}/${MOVEDFILE}; \ + fi \ + fi search: @${_PORTSEARCH} |