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. If port 8888 is in use, port 8889 is tried instead. If 8889 is also in use, 8890 is tried and so on. Max number of ports tried is 256.

    The mime.types file and WebTool's own HTML files are assumed to be in the directory webtool-<vsn>/priv/root/conf.

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 default data will be used for ip-number (127.0.0.1) and server name (localhost).

stop()->void

    Stop WebTool and the tools started by WebTool.

debug_app(Module)->void

    Types
        Module = atom()

    Debug a WebTool application by tracing all functions in the given module which are called from WebTool.

stop_debug()->void

    Stop the tracing started by debug_app/1, and format the trace log.

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()}

        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