% this is the actual cean package search implementation, to be improved.
% this module includes .pub files for erlang distribution
% search/1 must give better results, giving a string as parameter
% use of regexp would be great
% it must return a list of tuple with packages name and description.
% example of use
%1> c(cean_search).
%{ok,cean_search}
%2> cean_search:search("server").
%[{"inets",
% "A set of services such as a Web server and a ftp client",
% "See official inets Erlang/OTP Documentation"},
% {"test_server",
% "portable test server for automated application testing.",
% "See official test_server Erlang/OTP Documentation"}]
%3> cean_search:search("web").
%[{"inets",
% "A set of services such as a Web server and a ftp client",
% "See official inets Erlang/OTP Documentation"},
% {"webtool",
% "A tool that simplifying the use of web based Erlang tools",
% "See official webtool Erlang/OTP Documentation"}]
-module(cean_search).
-export([search/1]).
-define(PUBS, [
[{author, {"Gunilla Arendt", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","application"]},
{depends,["gs","kernel","stdlib"]},
{keywords,["monitor","application"]},
{summary, "A utility used to supervise Applications executing on several Erlang nodes"},
{abstract, "See official appmon Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Kenneth Lundin, Bertil Karlsson", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","net","driver"]},
{depends,["kernel","stdlib","syntax_tools"]},
{keywords,[]},
{summary, "Provides support for Abstract Syntax Notation One"},
{abstract, "See official asn1 Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","test"]},
{depends,[]},
{keywords,[]},
{summary, "portable application for automated testing."},
{abstract, "See official common_test Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Björn Gustavsson", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","code"]},
{depends,["crypto","hipe","kernel","stdlib"]},
{keywords,[]},
{summary, "A byte code compiler for Erlang which produces highly compact code"},
{abstract, "See official compiler Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","net"]},
{depends,["kernel","orber","stdlib"]},
{keywords,["orb"]},
{summary, "Orber OMG Event Service"},
{abstract, "See official cosEvent Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","net"]},
{depends,["kernel","orber","stdlib"]},
{keywords,["orb"]},
{summary, "Orber OMG Event Domain Service"},
{abstract, "See official cosEventDomain Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","net"]},
{depends,["cosProperty","inets","kernel","orber","ssl","stdlib"]},
{keywords,["orb"]},
{summary, "Orber OMG File Transfer Service"},
{abstract, "See official cosFileTransfer Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","net"]},
{depends,["kernel","orber","stdlib"]},
{keywords,["orb"]},
{summary, "Orber OMG Notification Service"},
{abstract, "See official cosNotification Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","net"]},
{depends,["kernel","mnesia","orber","stdlib"]},
{keywords,["orb"]},
{summary, "Orber OMG Property Service"},
{abstract, "See official cosProperty Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","net"]},
{depends,["kernel","orber","stdlib"]},
{keywords,["orb"]},
{summary, "Orber OMG Timer and TimerEvent Services"},
{abstract, "See official cosTime Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","net"]},
{depends,["kernel","orber","stdlib"]},
{keywords,["orb"]},
{summary, "Orber OMG Transaction Service"},
{abstract, "See official cosTransactions Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Peter Högfeldt", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","driver"]},
{depends,["kernel","stdlib"]},
{keywords,["crypt"]},
{summary, "Cryptographical support"},
{abstract, "See official crypto Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Gunilla Arendt", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","code"]},
{depends,["compiler","gs","kernel","stdlib"]},
{keywords,[]},
{summary, "A debugger for debugging and testing of Erlang programs"},
{abstract, "See official debugger Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","code"]},
{depends,["compiler","gs","hipe","kernel","stdlib"]},
{keywords,[]},
{summary, "The DIALYZER, a DIscrepany AnaLYZer for ERlang programs"},
{abstract, "See official dialyser Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","doc"]},
{depends,[]},
{keywords,[]},
{summary, "provides functionality for generating HTML from XML source code and/or EDoc comments in Erlang source code"},
{abstract, "See official docbuilder Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Richard Carlsson", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","doc","code"]},
{depends,["inets","kernel","stdlib","syntax_tools","xmerl"]},
{keywords,["doc"]},
{summary, "A utility used to generate documentation out of tags in source files"},
{abstract, "See official edoc Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Gordon Beaton, TTörnkvist", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","driver","code"]},
{depends,[]},
{keywords,["driver"]},
{summary, "Low level interface to C"},
{abstract, "See official erl_interface Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Håkan Mattsso", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","code"]},
{depends,["gs","kernel","runtime_tools","stdlib"]},
{keywords,[]},
{summary, "Event Tracer"},
{abstract, "See official et Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Gunilla Hugosson", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","graphic"]},
{depends,["kernel","stdlib"]},
{keywords,["interface","gui"]},
{summary, "A Graphics System used to write platform independent user interfaces"},
{abstract, "See official gs Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","code"]},
{depends,[]},
{keywords,["native","compile","optimized","compiler"]},
{summary, "Make a native-compilation of an Erlang module"},
{abstract, "See official hipe Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","code"]},
{depends,["kernel","orber","stdlib"]},
{keywords,[]},
{summary, "IDL compiler"},
{abstract, "See official ic Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","net","web","tool"]},
{depends,["kernel","mnesia","runtime_tools","ssl","stdlib"]},
{keywords,[]},
{summary, "A set of services such as a Web server and a ftp client"},
{abstract, "See official inets Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","code"]},
{depends,["kernel","runtime_tools","stdlib"]},
{keywords,[]},
{summary, "A trace tool for both development and delivered systems"},
{abstract, "See official snmp Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","driver","code"]},
{depends,[]},
{keywords,[]},
{summary, "Low level interface to Java"},
{abstract, "See official jinterface Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP"]},
{depends,["debugger","stdlib"]},
{keywords,[]},
{summary, "Functionality necessary to run the Erlang System itself"},
{abstract, "See official kernel Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","net"]},
{depends,["asn1","debugger","et","kernel","runtime_tools","stdlib"]},
{keywords,["H248","telephony"]},
{summary, "The Megaco/H.248 protocol support"},
{abstract, "See official megaco Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Claes Wikström, Hans Nilsson, Håkan Mattsson", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","database"]},
{depends,["debugger","kernel","mnemosyne","snmp","stdlib"]},
{keywords,[]},
{summary, "A heavy duty real-time distributed database"},
{abstract, "See official mnesia Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Siri Hansen", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","tool"]},
{depends,["et","gs","inets","kernel","runtime_tools","stdlib","webtool"]},
{keywords,["trace"]},
{summary, "Observer, tools for tracing and investigation of distributed systems"},
{abstract, "See official observer Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Ingela Anderton Andin", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","database","driver"]},
{depends,["kernel","stdlib"]},
{keywords,["sql"]},
{summary, "An interface to relational SQL-databases built on ODBC"},
{abstract, "See official odbc Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","net"]},
{depends,["inets","kernel","mnesia","ssl","stdlib"]},
{keywords,["orb"]},
{summary, "A CORBA Object Request Broker"},
{abstract, "See official orber Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","tool"]},
{depends,["kernel","mnesia","otp_mibs","sasl","snmp","stdlib"]},
{keywords,[]},
{summary, "A monitor which allows inspection of the underlying operating system"},
{abstract, "See official os_mon Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Ingela Anderton", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","misc"]},
{depends,["kernel","mnesia","snmp","stdlib"]},
{keywords,["mib"]},
{summary, "SNMP management information base for Erlang/OTP nodes"},
{abstract, "See official otp_mibs Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Carl Wilhelm Welin", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","tool","code"]},
{depends,["kernel","stdlib"]},
{keywords,["parse"]},
{summary, "A set of parsing and lexical analysis tools"},
{abstract, "See official parsetools Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", ""}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["undefined"]},
{depends,[]},
{keywords,[]},
{summary, ""},
{abstract, ""},
{home, ""},
{sources, ""}],
[{author, {"Gunilla Hugosson", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","tool"]},
{depends,["gs","kernel","stdlib"]},
{keywords,[]},
{summary, "A process manager used to inspect the state of an Erlang system"},
{abstract, "See official pman Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Björn Gustavsson, Patrik Nyblo", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","tool"]},
{depends,["kernel","stdlib"]},
{keywords,[]},
{summary, "Runtime tools, tools to include in a production system"},
{abstract, "See official runtime_tools Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP"]},
{depends,["kernel","stdlib","tools"]},
{keywords,[]},
{summary, "The System Architecture Support Libraries support"},
{abstract, "See official sasl Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","net"]},
{depends,["crypto","kernel","mnesia","runtime_tools","stdlib"]},
{keywords,["mib"]},
{summary, "Simple Network Management Protocol (SNMP) support"},
{abstract, "See official snmp Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Jakob Cederlund, Håkan Mattsson", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","net","application"]},
{depends,["asn1","crypto","kernel","stdlib"]},
{keywords,[]},
{summary, "Secure Shell application with sftp and ssh support"},
{abstract, "See official ssh Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Peter Högfeldt", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","driver","net"]},
{depends,["kernel","stdlib"]},
{keywords,[]},
{summary, "An interface to UNIX BSD sockets with Secure Sockets Layer"},
{abstract, "See official ssl Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP"]},
{depends,["kernel"]},
{keywords,[]},
{summary, "The Erlang standard libraries"},
{abstract, "See official stdlib Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","tool","code"]},
{depends,["kernel","stdlib"]},
{keywords,[]},
{summary, "A utility used to handle abstract Erlang syntax trees"},
{abstract, "See official syntax_tools Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","test"]},
{depends,[]},
{keywords,[]},
{summary, "portable test server for automated application testing."},
{abstract, "See official test_server Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Gunilla Hugosson", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","tool"]},
{depends,["gs","kernel","stdlib"]},
{keywords,[]},
{summary, "A tool bar simplifying access to the Erlang tools"},
{abstract, "See official toolbar Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","tool","web"]},
{depends,["compiler","inets","kernel","stdlib","webtool"]},
{keywords,[]},
{summary, "A set of programming tools including a coverage analyzer"},
{abstract, "See official tools Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Fredrik Gustafson", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","database","tool"]},
{depends,["gs","kernel","mnesia","pman","stdlib"]},
{keywords,["viewer","database"]},
{summary, "An ETS and MNESIA graphical table visualizer"},
{abstract, "See official tv Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Bingwen He","Bingwen.He@gmail.com"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","code"]},
{depends,["kernel","stdlib"]},
{keywords,[]},
{summary, "The main driver of the TypEr application"},
{abstract, "See official xmerl Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"Martin Gustafsson, Siri Hansen", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","web","tool"]},
{depends,["inets","kernel","observer","stdlib"]},
{keywords,[]},
{summary, "A tool that simplifying the use of web based Erlang tools"},
{abstract, "See official webtool Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}],
[{author, {"", "support@erlang.ericsson.se"}},
{packager, {"Christophe Romain", "christophe.romain@process-one.net"}},
{category,["Erlang/OTP","code"]},
{depends,["inets","kernel","ucs","stdlib"]},
{keywords,[]},
{summary, "Provides support for XML 1.0"},
{abstract, "See official xmerl Erlang/OTP Documentation"},
{home, "http://www.erlang.org"},
{sources, "http://www.erlang.org/download/otp_src_R12B-5.tar.gz"}]
]).
search(Descr) ->
Words = lists:map(fun(W) -> string:to_lower(W) end, string:tokens(Descr, ",()-.;:/ ")),
Match = lists:foldl(fun(Pub, List) ->
KW = proplists:get_value(keywords, Pub),
SM = proplists:get_value(summary, Pub),
PN = proplists:get_value(name, Pub),
MW = lists:map(fun(W) -> string:to_lower(W) end, [PN|KW]++string:tokens(SM, ",()-.;:/ ")),
lists:foldl(fun(Word, L) ->
case lists:member(Word, Words) of
true -> [{PN, SM, proplists:get_value(abstract, Pub)}|L];
false -> L
end
end, List, MW)
end, [], ?PUBS),
lists:usort(Match).