webtool(3)

MODULE
webtool - WebTool is a tool used to simplify the implementation of web based tools with Erlang/OTP.

DESCRIPTION

WebTool makes it easy to use web based tools with Erlang/OTP. WebTool configures and starts the webserver httpd.

EXPORTS

start()-> {ok,Pid}| {stop,Reason}

    Start WebTool with default data, i.e. port 8888, ip-number 127.0.0.1, and server-name localhost. The mime.types file and WebTool's own HTML files are assumed to be in the directory webtool-<vsn>/priv.

start(Path,Data)->{ok,Pid}|{stop,Reason}

    Types
        Path = string() | standard_path
        Data = [Port, Address, Name] | PortNumber | standard_data
        Port = {port, PortNumber}
        Address = {bind_address, IpNumber}
        Name = {server_name, ServerName}
        PortNumber = integer()
        IpNumber = tuple(), e.g. {127, 0, 0, 1}
        ServerName = string()
        Pid = pid()

    Use this function to start WebTool if the default port, ip-number,servername or path can not be used.

    Path is the directory where the mime.types file and WebTool's own HTML files are located. By default this is webtool-<vsn>/priv, and in most cases there is no need to change this. If Path is set to standard_path the default will be used.

    If Data is set to PortNumber, the ip-number and server name will be retreived by calling inet:gethostname/0 and inet:getaddr/2.

stop()->void

    Stop WebTool and the tools started by WebTool.

CALLBACK FUNCTIONS

The following callback function must be implemented by each web based tool that will be used via WebTool. When started, WebTool searches the Erlang code path for *.tool files to locate all web based tools and their callback functions. See the WebTool User's Guide for more information about the *.tool files.

EXPORTS

Module:Func(Data)-> {Name,WebData}|error

    Types
        Data = term()
        Name = atom()
        WebData = [WebOptions]
        WebOptions = LinkData | Alias | Start
        LinkData = {web_data, {ToolName, Url}}
        Alias = {alias, {VirtualPath, RealPath}} | {alias, {erl_alias, Path, [Modules]}
        Start = {start, StartData}
        ToolName = Url = VirtualPath = RealPath = Path = string()
        Modules = atom()
        StartData = AppData | ChildSpec | Func
        AppData = {app, AppName}
        ChildSpec = {child, child_spec()}
          See the Reference Manual for the module supervisor in the STDLIB application for details about child_spec().
        Func = {func, {StartMod, StartFunc, StartArg}, {StopMod, StopFunc, StopArg}}
        AppName = StartMod = StartFunc = StopMod = StopFunc =atom()
        StartArg = StopArg = [term()]

    This is the configuration function (config_func) which must be stated in the *.tool file.

    The function is called by WebTool at startup to retrieve the data needed to start and configure the tool. LinkData is used by WebTool to create the link to the tool. Alias is used to create the aliases needed by the webserver. Start is used to start and stop the tool.

See Also

start_webtool(1), WebTool User's Guide

AUTHOR
Martin Gustafsson - support@erlang.ericsson.se