[129060] trunk/base/doc/port-search.1.txt

cal at macports.org cal at macports.org
Thu Dec 4 12:20:09 PST 2014


Revision: 129060
          https://trac.macports.org/changeset/129060
Author:   cal at macports.org
Date:     2014-12-04 12:20:09 -0800 (Thu, 04 Dec 2014)
Log Message:
-----------
base: document port search, #44530

Added Paths:
-----------
    trunk/base/doc/port-search.1.txt

Copied: trunk/base/doc/port-search.1.txt (from rev 129052, trunk/base/doc/port-installed.1.txt)
===================================================================
--- trunk/base/doc/port-search.1.txt	                        (rev 0)
+++ trunk/base/doc/port-search.1.txt	2014-12-04 20:20:09 UTC (rev 129060)
@@ -0,0 +1,160 @@
+// vim: set et sw=4 ts=8 ft=asciidoc tw=80:
+port-search(1)
+==============
+$Id$
+
+NAME
+----
+port-search - Search for a port using keywords
+
+SYNOPSIS
+--------
+[cmdsynopsis]
+*port* [*-dq*] *search*
+     [--case-sensitive] [--line] [--exact|--glob|--regex] [--'field' ...]
+     'keyword' ...
+
+DESCRIPTION
+-----------
+*port search* helps you find ports by partial matches of the name or description
+(or other fields, depending on the given options). It is the tool of choice if
+you are looking for software in MacPorts.
+
+*search* works by searching for your given keyword(s) in a set of fields of all
+available ports. By default, a port's name and short description are searched,
+as if you had specified both *--name* and *--description*. See *OPTIONS* for
+possible values for 'field'.
+
+Note that you can specify multiple fields to be searched. A port will be printed
+when any of the fields matches your keyword(s). If you specify multiple
+keywords, *search* will run multiple separate searches, one for each given
+keyword.
+
+OPTIONS
+-------
+
+Search behavior
+~~~~~~~~~~~~~~~
+
+*--case-sensitive*::
+    Do not ignore case when searching for the given keyword.
+
+*--exact*::
+    Search for the given string exactly. Disables *--glob* (the default) and
+    *--regex*.
+
+*--glob*::
+    Treat the keyword(s) as wildcard (i.e., expand '\*', '?' and '[sets]'). This
+    is the default. See the *string match* section of man:string[n] for
+    a detailed syntax description.
+
+*--regex*::
+    Treat the given string as a Tcl regular expression. See man:re_syntax[n] for
+    a description of Tcl regular expressions.
+
+Output behavior
+~~~~~~~~~~~~~~~
+
+*--line*::
+    Print one match per line, where a line consists of name, version, categories
+    and short description.
+
+See also *-q* in the *GLOBAL OPTIONS* section below.
+
+Field selection
+~~~~~~~~~~~~~~~
+
+*--category*, *--categories*::
+    Search the category. You can use this to list all ports in a given category.
+    For example, *port search --category haskell* will print all Haskell ports
+    in MacPorts. If you don't need the description it's usually faster to use
+    the pseudo-portname selector *category:haskell* with man:port-echo[1] (i.e.,
+    *port echo category:haskell*) instead. See man:port[1] for more information
+    on pseudo-port selectors.
+
+*--depends*, *--depends_build*, *--depends_extract*, *--depends_fetch*, *--depends_lib*, *--depends_run*::
+    Search for ports that depend on the port given as keyword. *--depends* is an
+    alias for all other *--depends_* options combined. Note that only
+    dependencies present in default variants will be found by this search. As
+    with *--category*, there also are pseudo-portname selectors available for
+    dependencies.
+
+*--description*, *--long_description*::
+    Test the search string against ports' descriptions.
+
+*--homepage*::
+    Search for the keyword(s) in the homepage property.
+
+*--maintainer*::
+    Search for ports maintained by a specific maintainer. Note that there also
+    is a pseudo-portname selector available for maintainer addresses. See
+    man:port[1] for more information.
+
+*--name*::
+    Search in ports' names. Since this is the default (together with
+    *--description*), this flag is only useful when you to search 'only' in the
+    name, but not the description.
+
+*--portdir*::
+    Test the search string against the path of the directory that contains the
+    port.
+
+*--variant*, *--variants*::
+    Search for variant names.
+
+include::global-flags.txt[]
+
+*-q*::
+    Only print the name of the port that matched your query. Print one match per
+    line.
+
+EFFICIENT SEARCHING
+-------------------
+The output of *search* can be overwhelming and confusing, especially with
+a large number of results. Here are a few tips to improve your search efficiency
+with MacPorts.
+
+Suppose you are looking for PHP in MacPorts. You might start with
+----
+$> port search php
+----
+and notice your query produces a lot of output. In fact, at the time of writing
+this, this search produces 763 matches. By default, *search* searches both name
+and description of a port. While we're looking for PHP, we can reduce the number
+of hits by using the *--name* flag. Furthermore, we only want ports whose name
+starts with “php”, so we add the *--glob* flag (actually, we could leave it out
+because it is the default) and modify the search term to *php**. Note that the
+asterisk needs to be escaped or quoted to prevent the shell from interpreting
+it:
+----
+$> port search --name --glob 'php*'
+----
+Since that still produces 689 results, we can activate compressed output using
+the *--line* flag
+----
+$> port search --line --name --glob 'php*'
+----
+Scrolling over the output, we see a large number of PHP modules starting with
+php<version>-<modulename>. That tells us the main PHP ports might be named
+php<version>. Using regex we can further narrow down the results:
+----
+$> port search --line --name --regex '^php\d+$'
+----
+
+Note it is not always necessary to drill down to reduce the amount of output.
+For example, if you're looking for *rrdtool*, a popular system to store and
+graph time-series data, the simple approach works well, with only 12 ports being
+returned:
+----
+$> port search rrd
+----
+
+
+SEE ALSO
+--------
+man:port[1], man:string[n], man:re_syntax[n], man:port-install[1]
+
+AUTHORS
+-------
+ (C) 2014 The MacPorts Project
+ Clemens Lang <cal at macports.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20141204/f335282c/attachment.html>


More information about the macports-changes mailing list