% 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).